Gearman is a distributed job server, Redis is a distributed store. So it is bit like comparing apples to oranges.
Now, it is possible to implement Gearman-like features with Redis (based on the list data type for instance), but it is a do-it-yourself approach. While the principle is simple, the devil is in the details.
The best Redis distributed queue implementations are for Ruby (Resque) and Python (Celery, RQ). There is a port of Resque for PHP:
https://github.com/chrisboulton/php-resque
There are important points to consider when comparing Gearman to a Redis-based implementation:
Gearman jobs notify their completion to the client, and can be synchronous or asynchronous. If you do not implement something specific, a Redis queue will only support asynchronous jobs without completion notification.
High-availability of the broker. Gearman proposes an off-the-shelf strategy. Redis does not. While you can configure master-slave replication, and use Redis Sentinel, Redis HA is not a simple problem.
Persistency. Gearman supports in-memory queues, but also some persistent backends (MySQL, Drizzle, sqlite, PostgreSQL). Redis proposes various persistency options, but none of them is as reliable as a transactional engine like MySQL or PostgreSQL.
Vertical scalability. While Redis is very efficient, it is a single-threaded process. Gearmand is a multi-threaded process, that can probably scale better (considering a single process).
Implementing a Redis-based distributed job system is fun and interesting, but if you need something working quickly, Gearman is your best bet.