123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- v0.6.0 (2010-05-??)
- * Switched to the new multi-bulk request protocol for all of the commands
- in the Redis 1.2 and Redis 2.0 profiles. Inline and bulk requests are now
- deprecated as they will be removed in future releases of Redis.
- * The default server profile is "2.0" (targeting Redis 2.0.x). If you are
- using older versions of Redis, it is highly recommended that you specify
- which server profile the client should use (e.g. "1.2" when connecting
- to instances of Redis 1.2.x).
- * Support for Redis 1.0 is now optional and it is provided by requiring
- 'Predis_Compatibility.php' before creating an instance of Predis\Client.
- * New commands added to the Redis 2.0 profile since Predis 0.5.1:
- - Strings: SETEX, APPEND, SUBSTR
- - ZSets : ZCOUNT, ZRANK, ZUNIONSTORE, ZINTERSTORE, ZREMBYRANK, ZREVRANK
- - Hashes : HSET, HSETNX, HMSET, HINCRBY, HGET, HMGET, HDEL, HEXISTS,
- HLEN, HKEYS, HVALS, HGETALL
- - PubSub : PUBLISH, SUBSCRIBE, UNSUBSCRIBE
- - Misc. : DISCARD, CONFIG
- * Introduced client-level options with the new Predis\ClientOptions class.
- Options can be passed to Predis\Client::__construct in its second argument
- as an array or an instance of Predis\ClientOptions. For brevity's sake and
- compatibility with older versions, the constructor of Predis\Client still
- accepts an instance of Predis\RedisServerProfile in its second argument.
- The currently supported client options are:
- - profile [default: "2.0" as of Predis 0.6.0]
- specifies which server profile to use when connecting to Redis. This
- option accepts an instance of Predis\RedisServerProfile or a string
- that indicates the target version.
- - key_distribution [default: Predis\Distribution\HashRing]
- specifies which key distribution strategy to use to distribute keys
- among the servers that compose a cluster. This option accepts an
- instance of Predis\Distribution\IDistributionStrategy so that users
- can implement their own key distribution strategy. Optionally, the new
- Predis\Distribution\KetamaPureRing class also provides a pure-PHP
- implementation of the same algorithm used by libketama.
- - throw_on_error [default: TRUE]
- server errors can optionally be handled "silently": instead of throwing
- an exception, the client returns an error response type.
- - iterable_multibulk [EXPERIMENTAL - default: FALSE]
- in addition to the classic way of fetching a whole multibulk reply
- into an array, the client can now optionally stream a multibulk reply
- down to the user code by using PHP iterators. It is just a little bit
- slower, but it can save a lot of memory in certain scenarios.
- * New parameters for connections:
- - alias [default: not set]
- every connection can now be identified by an alias that is useful to
- get a certain connection when connected to a cluster of Redis servers.
- - weight [default: not set]
- allows the client to balance the keys asymmetrically across multiple
- servers. This might be useful when you have servers with different
- amounts of memory and you want to distribute the load of your keys
- accordingly.
- - connection_async [default: FALSE]
- estabilish connections to servers in a non-blocking way, so that the
- client is not blocked while the underlying resource performs the actual
- connection.
- - connection_persistent [default: FALSE]
- the underlying connection resource is left open when a script ends its
- lifecycle. Persistent connections can lead to unpredictable or strange
- behaviours, so they should be used with extreme care.
- * Introduced the Predis\Pipeline\IExecutor interface. Classes implementing
- this interface are now used internally by the Predis\CommandPipeline class
- to change the behaviour of the pipeline when writing/reading commands from
- one or multiple servers. Here is the list of the default executors:
- - Predis\Pipeline\StandardExecutor
- Exceptions generated by server errors might be thrown depending on the
- options passed to the client (see "throw_on_error"). Instead, protocol
- or network errors always throw exceptions. This is the default executor
- for single and clustered connections and shares the same behaviour of
- Predis 0.5.x.
- - Predis\Pipeline\SafeExecutor
- Exceptions generated by server, protocol or network errors are not
- thrown, instead they are returned in the response array as instances of
- ResponseError or CommunicationException.
- - Predis\Pipeline\SafeClusterExecutor
- This executor shares the same behaviour of Predis\Pipeline\SafeExecutor
- but it is geared towards clustered connections.
- * Support for PUBSUB is handled by the new Predis\PubSubContext class, which
- could also be used to build a callback dispatcher for PUBSUB scenarios.
- * When connected to a cluster of connections, it is now possible to get a
- new Predis\Client instance for a single connection of the cluster by
- passing its alias/index to the new Predis\Client::getClientFor() method.
- * CommandPipeline and MultiExecBlock return their instances when invoking
- commands, thus allowing method chaining in pipelines and multi-exec blocks.
- * MultiExecBlock instances can handle the new DISCARD command.
- * Connections now support float values for the connection_timeout parameter
- to express timeouts with a microsecond resolution.
- * The GET parameter for the SORT command now accepts also multiple key
- patterns by passing an array of strings.
- v0.5.1 (2010-01-27)
- * RPOPLPUSH has been changed from bulk command to inline command in Redis
- 1.2.1, so ListPopLastPushHead now extends InlineCommand. The old RPOPLPUSH
- behavior is still available via the ListPopLastPushHeadBulk class so that
- you can override the server profile if you need the old (and uncorrect)
- behaviour when connecting to a Redis 1.2.0 instance.
- * Added missing support for BGREWRITEAOF for Redis >= 1.2.0
- * Implemented a factory method for the RedisServerProfile class to ease the
- creation of new server profile instances based on a version string.
- v0.5.0 (2010-01-09)
- * First versioned release of Predis
|