CHANGELOG 4.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. v0.6.0
  2. * Completely switched to the new multi-bulk request protocol for all of the
  3. commands in the Redis 1.2 and Redis 2.0 profiles. Inline and bulk requests
  4. are now deprecated as they will be removed in future releases of Redis.
  5. * Support for Redis 1.0 is now optional and it is provided by requiring
  6. 'Predis_Compatibility.php' before creating an instance of Predis_Client.
  7. * New commands added to the Redis 2.0 profile since Predis 0.5.1:
  8. - Strings: SETEX, APPEND, SUBSTR
  9. - ZSets : ZCOUNT, ZRANK, ZUNIONSTORE, ZINTERSTORE, ZREMBYRANK, ZREVRANK
  10. - Hashes : HSET, HSETNX, HMSET, HINCRBY, HGET, HMGET, HDEL, HEXISTS,
  11. HLEN, HKEYS, HVALS, HGETALL
  12. - PubSub : PUBLISH, SUBSCRIBE, UNSUBSCRIBE
  13. - Misc. : DISCARD, CONFIG
  14. * Introduced client-level options with the new Predis_ClientOptions class.
  15. Options can be passed to Predis_Client::__construct in its second argument
  16. as an array or an instance of Predis_ClientOptions. For brevity's sake and
  17. compatibility with older versions, the constructor of Predis_Client still
  18. accepts an instance of Predis_RedisServerProfile in its second argument.
  19. The currently supported client options are:
  20. - profile [default: "2.0" as of Predis 0.6.0]
  21. specifies which server profile to use when connecting to Redis. This
  22. option accepts an instance of Predis_RedisServerProfile or a string
  23. that indicates the target version.
  24. - key_distribution [default: Predis_Utilities_HashRing]
  25. specifies which key distribution algorithm to use to distribute keys
  26. among the servers that compose a cluster. This option accepts an
  27. instance of Predis_IDistributionAlgorithm so that users can implement
  28. their own key distribution strategy. Optionally, the new
  29. Predis_Utilities_KetamaPureRing class also provides a pure-PHP
  30. implementation of the Ketama algorithm.
  31. - throw_on_error [default: TRUE]
  32. server errors can optionally be handled "silently": instead of throwing
  33. an exception, the client returns an error response type.
  34. - iterable_multibulk [EXPERIMENTAL - default: FALSE]
  35. in addition to the classic way of fetching a whole multibulk reply
  36. into an array, the client can now optionally stream a multibulk reply
  37. down to the user code by using PHP iterators. It is just a little bit
  38. slower, but it can save a lot of memory in certain scenarios.
  39. * New parameters for connections:
  40. - alias [default: not set]
  41. every connection can now be identified by an alias that is useful to
  42. get a certain connection when connected to a cluster of Redis servers.
  43. - weight [default: not set]
  44. allows the client to balance the keys asymmetrically across multiple
  45. servers. This might be useful when you have servers with different
  46. amounts of memory and you want to distribute the load of your keys
  47. accordingly.
  48. - connection_async [default: FALSE]
  49. estabilish connections to servers in a non-blocking way, so that the
  50. client is not blocked while the underlying resource performs the actual
  51. connection.
  52. - connection_persistent [default: FALSE]
  53. the underlying connection resource is left open when a script ends its
  54. lifecycle. Persistent connections can lead to unpredictable or strange
  55. behaviours, so they should be used with extreme care.
  56. * Connections now support float values for the connection_timeout parameter
  57. to express timeouts with a microsecond resolution.
  58. * CommandPipeline and MultiExecBlock return their instances when invoking
  59. commands, thus allowing method chaining in pipelines and multi-exec blocks.
  60. * MultiExecBlock instances can handle the new DISCARD command.
  61. * The GET parameter for the SORT command now accepts also multiple key
  62. patterns by passing an array of strings.
  63. * KEYS will return a multibulk reply starting from Redis 2.0 (DEV). Predis
  64. handles this change in a backwards-compatible way.
  65. * Switched to class-based handlers instead of anonymous functions to
  66. handle the various server response types.
  67. v0.5.1
  68. * RPOPLPUSH has been changed from bulk command to inline command in Redis
  69. 1.2.1, so ListPopLastPushHead now extends InlineCommand. The old RPOPLPUSH
  70. behavior is still available via the ListPopLastPushHeadBulk class so that
  71. you can override the server profile if you need the old (and uncorrect)
  72. behaviour when connecting to a Redis 1.2.0 instance.
  73. * Added missing support for BGREWRITEAOF for Redis >= 1.2.0
  74. * Implemented a factory method for the RedisServerProfile class to ease the
  75. creation of new server profile instances based on a version string.
  76. v0.5.0
  77. * First versioned release of Predis