an incomplete redis library

v3.0.1 2017-10-20 17:59 UTC

This package is auto-updated.

Last update: 2020-07-05 23:54:41 UTC


a simple and (in)complete redis library

Peruse the tests or, if present, the examples directory to see usage.

Latest Stable Version Build Status


RedisProtocol is responsible for holding a connection to a Redis server, translating PHP functions/args into the Redis protocol, and reading/writing to the connection. It allows for pipelining (via pipe()) and uses __call() to allow for the variability in Redis function names and arguments. Extending RedisProtocol or only implemnting the trait in whose methods your interested, is simple and effective if you're 1) not interested in pub/sub and 2) familiar with Redis.


RedisSubscription is a wrapper/shorthand to the pub/sub model of Redis and returns lambdas that allow for looping/listening as part of a subscription (example). Extend RedisSubscription to get all of RedisProtocol + pub/sub in PHP.


All Redis errors are thrown as RedisExceptions. Protocol errors are thrown as RedisProtocolExceptions.


The Redis class implements all** the methods that Redis has available as of v3.0 and has a few constants for those instances where keywords are used as switches within a Redis function. It composes a series of traits that represent the divisions present in the Redis command documentation.

Interfaces are included--also broken into sections via the Redis command documentation. This allows the usage of individual traits/interfaces if only a subset of Redis functionality is desired.

I would recommend against using the PubSubTrait methods as RedisSubscription abstracts a lot of the dirty work.

There are a few instances where one Redis function has been broken into two or more PHP functions as Redis uses some keywords as arguments. For example bitop has been broken into Redis::bitopAnd(), Redis::bitopOr(), Redis::bitopXor(), Redis::bitopNot() for (potentially) clearer PHP implementation(s).

**There are a handful of exceptions: Redis::clusterSetSlot(), Redis::echo(), and Redis::sort()

I recommend looking through the code and the examples. However, I've auto generated some documentation for your delight and edification.