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 inexpire
,setex
and a few others.
- Cast
-
v5.0.3 Changes
- โ Add
OutOfMemoryError
as a subclass ofCommandError
- โ Add
-
v5.0.2 Changes
- ๐ Fix
Redis#close
to properly reset the fork protection check.
- ๐ Fix
-
v5.0.1 Changes
- โ Added a fake
Redis::Connections.drivers
method to be compatible with older sidekiq versions.
- โ Added a fake
-
v5.0.0 Changes
- Eagerly and strictly cast Integer and Float parameters.
- ๐ Allow to call
subscribe
,unsubscribe
,psubscribe
andpunsubscribe
from a subscribed client. See #1131. - ๐ Use
MD5
for hashing server nodes inRedis::Distributed
. This should improve keys distribution among servers. See #1089. - ๐ Changed
sadd
andsrem
to now always return an Integer. - โ Added
sadd?
andsrem?
which always return a Boolean. - โ Added support for
IDLE
paramter inxpending
. - ๐ Cluster support has been moved to a
redis-clustering
companion gem. select
no longer record the current database. If the client has to reconnect afterselect
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
andreconnect_delay
, you can pass precise sleep durations toreconnect_attempts
instead. - ๐ Require Ruby 2.5+.
- โ Removed the deprecated
queue
andcommit
methods. Usepipelined
instead. - โ Removed the deprecated
Redis::Future#==
. - โ Removed the deprecated
pipelined
andmulti
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.
-
v4.8.0 Changes
- Introduce
sadd?
andsrem?
as boolean returning versions ofsadd
andsrem
. - ๐ Deprecate
sadd
andsrem
returning a boolean when called with a single argument. To enable the redis 5.0 behavior you can setRedis.sadd_returns_boolean = false
. - ๐ Deprecate passing
timeout
as a positional argument in blocking commands (brpop
,blop
, etc).
- Introduce
-
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.
- ๐ Gracefully handle OpenSSL 3.0 EOF Errors (
-
v4.7.0 Changes
- ๐ Support single endpoint architecture with SSL/TLS in cluster mode. See #1086.
- ๐
zrem
andzadd
act as noop when provided an empty list of keys. See #1097. - ๐ Support IPv6 URLs.
- โ Add
Redis#with
for better compatibility withconnection_pool
usage. - ๐ Fix the block form of
multi
called insidepipelined
. Previously theMUTLI/EXEC
wouldn't be sent. See #1073.
-
v4.6.0 Changes
- ๐ Deprecate
Redis.current
. - ๐ Deprecate calling commands on
Redis
insideRedis#pipelined
. See #1059.ruby redis.pipelined do redis.get("key") end
should be replaced by:
redis.pipelined do |pipeline| pipeline.get("key") end
- ๐ Deprecate calling commands on
Redis
insideRedis#multi
. See #1059.ruby redis.multi do redis.get("key") end
should be replaced by:
redis.multi do |transaction| transaction.get("key") end
๐ Deprecate
Redis#queue
andRedis#commit
. See #1059.๐ Fix
zpopmax
andzpopmin
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 setRedis.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 setRedis.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.
- ๐ Deprecate