All Versions
Latest Version
Avg Release Cycle
103 days
Latest Release

Changelog History
Page 1

  • 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.
    • โœ‚ 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.

  • v4.5.1 Changes

    • โช Restore the accidential auth behavior of redis-rb 4.3.0 with a warning. If provided with the default user's password, but a wrong username, redis-rb will first try to connect as the provided user, but then will fallback to connect as the default user with the provided password. This behavior is deprecated and will be removed in Redis 4.6.0. Fix #1038.