mirror of
https://github.com/predis/predis.git
synced 2026-08-23 20:49:50 +00:00
92 lines
4.7 KiB
Plaintext
92 lines
4.7 KiB
Plaintext
v0.6.0
|
|
* Completely 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.
|
|
|
|
* 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: APPEND, SUBSTR
|
|
- ZSets : ZCOUNT, ZRANK, ZUNION, ZINTER, ZREMBYRANK, ZREVRANK
|
|
- Hashes : HSET, HMSET, HINCRBY, HGET, 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\Utilities\HashRing]
|
|
specifies which key distribution algorithm to use to distribute keys
|
|
among the servers that compose a cluster. This option accepts an
|
|
instance of Predis\IDistributionAlgorithm so that users can implement
|
|
their own key distribution strategy. Optionally, the new
|
|
Predis\Utilities\KetamaPureRing class also provides a pure-PHP
|
|
implementation of the Ketama algorithm.
|
|
- 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.
|
|
|
|
* Connections now support float values for the connection_timeout parameter
|
|
to express timeouts with a microsecond resolution.
|
|
|
|
* 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.
|
|
|
|
* The GET parameter for the SORT command now accepts also multiple key
|
|
patterns by passing an array of strings.
|
|
|
|
* KEYS will return a multibulk reply starting from Redis 2.0 (DEV). Predis
|
|
handles this change in a backwards-compatible way.
|
|
|
|
* Switched to class-based handlers instead of anonymous functions to
|
|
handle the various server response types.
|
|
|
|
v0.5.1
|
|
* 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
|
|
* First versioned release of Predis
|