All Versions
Latest Version
Avg Release Cycle
103 days
Latest Release

Changelog History
Page 1

  • v5.0.5 Changes

    • ๐Ÿ›  Fix automatic disconnection when the process was forked. See #1157.
  • v5.0.4 Changes

    • Cast ttl argument to integer in expire, setex and a few others.
  • v5.0.3 Changes

    • โž• Add OutOfMemoryError as a subclass of CommandError
  • v5.0.2 Changes

    • ๐Ÿ›  Fix Redis#close to properly reset the fork protection check.
  • v5.0.1 Changes

    • โž• Added a fake Redis::Connections.drivers method to be compatible with older sidekiq versions.
  • v5.0.0 Changes

    • Eagerly and strictly cast Integer and Float parameters.
    • ๐Ÿ‘ Allow to call subscribe, unsubscribe, psubscribe and punsubscribe from a subscribed client. See #1131.
    • ๐Ÿ‘€ Use MD5 for hashing server nodes in Redis::Distributed. This should improve keys distribution among servers. See #1089.
    • ๐Ÿ”„ Changed sadd and srem to now always return an Integer.
    • โž• Added sadd? and srem? which always return a Boolean.
    • โž• Added support for IDLE paramter in xpending.
    • ๐Ÿšš Cluster support has been moved to a redis-clustering companion gem.
    • select no longer record the current database. If the client has to reconnect after select was used, it will reconnect to the original database.
    • ๐Ÿ‘ Better support Float timeout in blocking commands. See #977.
    • will now raise an error if provided unknown options.
    • โœ‚ Removed positional timeout in blocking commands (BLPOP, etc). Timeout now must be passed as an option: r.blpop("key", timeout: 2.5)
    • โœ‚ Removed logger option.
    • Removed reconnect_delay_max and reconnect_delay, you can pass precise sleep durations to reconnect_attempts instead.
    • ๐Ÿ’Ž Require Ruby 2.5+.
    • โœ‚ Removed the deprecated queue and commit methods. Use pipelined instead.
    • โœ‚ Removed the deprecated Redis::Future#==.
    • โœ‚ Removed the deprecated pipelined and multi signature. Commands now MUST be called on the block argument, not the original redis instance.
    • โœ‚ Removed Redis.current. You shouldn't assume there is a single global Redis connection, use a connection pool instead, and libaries using Redis should accept a Redis instance (or connection pool) as a config. E.g. MyLibrary.redis =
    • โœ‚ Removed the synchrony driver.
    • Removed Redis.exists_returns_integer, it's now always enabled.
  • v4.8.0 Changes

    • Introduce sadd? and srem? as boolean returning versions of sadd and srem.
    • ๐Ÿ—„ Deprecate sadd and srem returning a boolean when called with a single argument. To enable the redis 5.0 behavior you can set Redis.sadd_returns_boolean = false.
    • ๐Ÿ—„ Deprecate passing timeout as a positional argument in blocking commands (brpop, blop, etc).
  • v4.7.1 Changes

    • ๐Ÿ‘€ Gracefully handle OpenSSL 3.0 EOF Errors (OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading). See #1106 This happens frequently on heroku-22.
  • v4.7.0 Changes

    • ๐Ÿ‘Œ Support single endpoint architecture with SSL/TLS in cluster mode. See #1086.
    • ๐Ÿ‘€ zrem and zadd act as noop when provided an empty list of keys. See #1097.
    • ๐Ÿ‘Œ Support IPv6 URLs.
    • โž• Add Redis#with for better compatibility with connection_pool usage.
    • ๐Ÿ›  Fix the block form of multi called inside pipelined. Previously the MUTLI/EXEC wouldn't be sent. See #1073.
  • v4.6.0 Changes

    • ๐Ÿ—„ Deprecate Redis.current.
    • ๐Ÿ‘€ Deprecate calling commands on Redis inside Redis#pipelined. See #1059. ruby redis.pipelined do redis.get("key") end

    should be replaced by:

      redis.pipelined do |pipeline|
    • ๐Ÿ‘€ Deprecate calling commands on Redis inside Redis#multi. See #1059. ruby redis.multi do redis.get("key") end

    should be replaced by:

      redis.multi do |transaction|
    • ๐Ÿ‘€ Deprecate Redis#queue and Redis#commit. See #1059.

    • ๐Ÿ›  Fix zpopmax and zpopmin when called inside a pipeline. See #1055.

    • ๐Ÿ”€ Redis#synchronize is now private like it should always have been.

    • โž• Add Redis.silence_deprecations= to turn off deprecation warnings. If you don't wish to see warnings yet, you can set Redis.silence_deprecations = true. It is however heavily recommended to fix them instead when possible.

    • โž• Add Redis.raise_deprecations= to turn deprecation warnings into errors. This makes it easier to identitify the source of deprecated APIs usage. It is recommended to set Redis.raise_deprecations = true in development and test environments.

    • โž• Add new options to ZRANGE. See #1053.

    • โž• Add ZRANGESTORE command. See #1053.

    • โž• Add SCAN support for Redis::Cluster. See #1049.

    • โž• Add COPY command. See #1053. See #1048.

    • โž• Add ZDIFFSTORE command. See #1046.

    • โž• Add ZDIFF command. See #1044.

    • โž• Add ZUNION command. See #1042.

    • โž• Add HRANDFIELD command. See #1040.