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
