redis-rb v5.0.0 Release Notes

    • 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.
    • Redis.new 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 = Redis.new(...).
    • โœ‚ Removed the synchrony driver.
    • Removed Redis.exists_returns_integer, it's now always enabled.