mirror of
https://github.com/predis/predis.git
synced 2026-08-30 12:15:03 +00:00
153 lines
8.1 KiB
Plaintext
153 lines
8.1 KiB
Plaintext
v0.6.1 (2010-xx-xx)
|
|
* New commands available in the Redis v2.2 profile (dev):
|
|
- Misc. : WATCH, UNWATCH
|
|
|
|
* Minor internal improvements and clean ups.
|
|
|
|
* The constructor of Predis\Client::__construct now accepts also instances
|
|
of Predis\ConnectionParameters.
|
|
|
|
* Predis\MultiExecBlock and Predis\PubSubContext will throw an exception
|
|
when trying to create their instances using a profile that does not
|
|
support the required Redis commands or when the client is connected to
|
|
a cluster of connections.
|
|
|
|
* Various improvements to Predis\MultiExecBlock:
|
|
- fixes and more consistent behaviour across various usage cases.
|
|
- support for WATCH and UNWATCH when using the current development
|
|
profile (Redis v2.2) and aborted transactions.
|
|
|
|
* New method signature for Predis\Client::multiExec(). Now it is able to
|
|
accept an array of options for the underlying Predis\MultiExecBlock, but
|
|
it is still backwards compatible with previous releases of Predis.
|
|
|
|
* New method signature for Predis\Client::pipeline(). Now it is able to
|
|
accept an array of options for the underlying Predis\CommandPipeline,
|
|
but it is still backwards compatible with previous releases of Predis.
|
|
Predis\Client::pipelineSafe() is to be considered obsolete.
|
|
|
|
v0.6.0 (2010-05-24)
|
|
* 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\IPipelineExecutor interface. Classes that
|
|
implements this interface are 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.
|
|
|
|
* FIX: TCP connections now respect the read/write timeout parameter when
|
|
reading the payload of server responses. Previously, stream_get_contents()
|
|
was being used internally to read data from a connection but it looks like
|
|
PHP does not honour the specified timeout for socket streams when inside
|
|
this function.
|
|
|
|
* FIX: The GET parameter for the SORT command now accepts also multiple key
|
|
patterns by passing an array of strings. (ISSUE #1).
|
|
|
|
* FIX: Replies to the DEL command return the number of elements deleted by
|
|
the server and not 0 or 1 interpreted as a boolean response. (ISSUE #4).
|
|
|
|
v0.5.1 (2010-01-23)
|
|
* 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
|