3.2.007 May 2016 11:45
Upgrade urgency MODERATE: this release a non trivial Sentinel crash.
avg_ttl reporting in INFO improved. (Salvatore Sanfilippo).
Sentinel: improve handling of known Sentinel instances.
(Salvatore Sanfilippo, thanks to Paweł Kowalczykf or the original.
Redis Cluster address update (via gossip section) processing improved
to avoid initiating inwanted handshakes.
3.0.726 Jan 2016 06:05
Upgrade urgency MODERATE: this release important Redis Cluster.
Many to MIGRATE multiple keys implementation. The command.
Could handle errors in a faulty way leading to crashes or other
Unexpected behaviors. MIGRATE command refactoring.
(The analysis of the faulty conditions was conducted by
Kevin McGehee. The was developed by Salvatore Sanfilippo).
A Redis Cluster node crash was because of wrong handling of.
Node- slaveof pointers.
redis-trib rebalance when nodes need to be left empty because.
The specified weight is zero.
MIGRATE: Never send -ASK redirections for MIGRATE when there are.
Open slots. Redis-trib and other cluster management utility must
Always be free to move keys between nodes about open slots, in order
to reshard, the cluster configuration, and so forth.
Lua deger crash when printing too deeply nested objects.
Redis-cli implementation of Lua deging now allows to use the
SCRIPT DEcommand directly, switching to deging mode as needed.
Redis-trib is now able to more errors. A new CLUSTER subcommand.
Called BUMPEPOCH was introduced in order to support new modes
For the "" subcommand. (Salvatore Sanfilippo)
NEW Redis proctected mode: this feature improves Redis security and makes.
Harder to run Redis in a configuration that is unsecure because no
Firewalling was used in order to protect Redis from external accesses.
See this Reddit post for more info: https://www.reddit.com/r/redis/comments/3zv85m/new_security_feature_redis_protected_mode/ (Salvatore Sanfilippo).
NEW Cluster/Sentinel tests now use OSX leak to perform leak detection
at the end of every unit. (Salvatore Sanfilippo).
NEW Detect and show server crashes during Cluster/Sentinel tests.
NEW More reliable Cluster/Sentinel test becuase of timing errors and.
-LOADING errors. (Salvatore Sanfilippo).
3.0.619 Dec 2015 07:45
Upgrade urgency: MODERATE. We a crash that happens very rarely, so
Updating does not hurt, but most users are unlikely to
Experience this condition because it requires some odd
Timing. However if you are a Redis Cluster user, upgrading
is strongly adviced since this release includes very.
Important improvements to Redis Cluster.
lua_struct.c/getnum security. (Luca Bruno discovered it.
Patched by Sun He and Chris Lamb)
Redis Cluster replica migration. See for details.
a race condition in processCommand() because of interactions.
With freeMemoryIfNeeded(). Details in and especially
in the commit message d999f5a. (Race found analytically by
Oran Agra, patch by Salvatore Sanfilippo).
NEW Backported from the upcoming Redis 3.2:
MIGRATE now supports an extended multiple-keys pipelined mode, which
is an order of magnitude faster. Redis Cluster now uses this mode
in order to perform reshardings and rebalancings. (Salvatore Sanfilippo).
NEW Backported from the upcoming Redis 3.2:
Redis Cluster has now support for rebalancing via the redis-trib.
Rebalance command. Demo here:
Official documentation will be available ASAP. (Salvatore Sanfilippo).
NEW Redis Cluster redis-trib.rb new "info" subcommand.
NEW Redis Cluster tests improved. (Salvatore Sanfilippo).
NEW Log offending memory access address on SIGSEGV/SIGBUS (Salvatore
3.0.516 Oct 2015 17:45
Upgrade urgency: MODERATE, the most important thing is a in the replication
Code that may make the slave hanging forever if the master
Remains with an open socket even if it is no longer able to
MOVE now moves the TTL as well. A lasting forever... finally.
Thanks to Andy Grunwald that reported it.
a false positive in HSTRLEN test.
a in redis-cli --pipe mode that was not able to read back.
Replies from the server incrementally. Now a mass import will use
a lot less memory, and you can use --pipe to do incremental streaming.
Slave detection of master timeout.
NEW Cluster: redis-trib can an additional case for opens lots.
NEW Cluster: redis-trib import support for --copy and --replace options.
3.0.410 Sep 2015 12:25
Upgrade urgency: HIGH for Redis and Sentinel. However note that in order to
Certain replication, the replication internals were
Modified in a very heavy way. So while this release is
Conceptually saner, it may contain regressions. For this
Reason, before the release, QA activities were performed by
me (antirez) and Redis Labs and no evident was found.
A number of related to replication PSYNC and the (yet experimental).
Diskless replication feature were. The could lead to
Inconsistency between masters and slaves. (Salvatore Sanfilippo, Oran
Agra the found by Yuval Inbar).
A replication in the context of PSYNC partial resynchonization was.
Found and. This happens even when diskless replication is off
in the case different slaves connect at different times while the master
is creating an RDB file, and later a partial resynchronization is.
Attempted by a slave that connected not as the first one. (Salvatore
Sanfilippo, Oran Agra).
Chained replication and PSYNC interactions leading to potential stale.
Chained slaves data set, see. (Salvatore Sanfilippo an reported by "GeorgeBJ" user at Github)
redis-cli --scan iteration when returned cursor overflows
32 bit signed integer. (Ofir Luzon, Yuval Inbar).
Senitnel: a during the master switch process, where for a.
Failed conditional check, the new configuration is rewritten, during
a small window of time, in a corrupted way where the master is.
Also reported to be one of the slaves. This is rare to trigger
But apparently it happens in the wild, and the effect is to see
a replication loop where the master will try to replicate with itself.
A detailed explanation of the and its effects can be found in.
The commit message here: https://github.com/antirez/redis/commit/c20218eb5770b2cafb12bc7092313b8358fedc0a.
The was found by Jan-Erik Rediger using a static analyzer and
by Salvatore Sanfilippo.
Sentinel lack of arity checks for certain commands.
(Rogerio Goncalves, Salvatore Sanfilippo).
3.0.318 Jul 2015 10:25
Upgrade urgency: LOW for Redis and Sentinel.
FIX Fix blocking operations timeout precision when HZ is at its default
value (not increased) and there are thousands of clients connected
at the same time. This bug affected Sidekiq users that experienced
a very long delay for BLPOP and similar commands to return for
timeout. Check commit b029ff1 for more info. (Salvatore Sanfilippo).
FIX MIGRATE "creating socket: Invalid argument" error fix. Check
issues #2609 and #2612 for more info. (Salvatore Sanfilippo).
FIX Be able to connect to the master even when the slave is bound to
just the loopback interface and has no valid public address in the
network the master is reacahble. (Salvatore Sanfilippo).
FIX ZADD with options encoding promotion fixed. (linfangrong).
FIX Reset aof_delayed_fsync on CONFIG RESETSTATS. (Tom Kiemes).
FIX PFCOUNT key parsing in cluster fixed. (MOON_CLJ).
FIX Fix Solaris compilation of Redis 3.0. (Jan-Erik Rediger).
NEW Variadic EXISTS command. Now the command accepts multiple arguments
and returns the total count of existing keys.
3.0.205 Jun 2015 03:15
Upgrade urgency: HIGH for Redis because of a security issue.
LOW for Sentinel.
FIX Critical security issue fix by Ben Murphy: http://t.co/LpGTyZmfS7.
FIX SMOVE reply fixed when src and dst keys are the same. (Glenn Nethercutt).
FIX Lua cmsgpack lib updated to support str8 type. (Sebastian Waisbrot).
NEW ZADD support for options: NX, XX, CH. See new doc at redis.io.
NEW Senitnel: CKQUORUM and FLUSHCONFIG commands back ported.
3.0.107 May 2015 03:25
Sentinel memory leak due to hiredis fixed.
Sentinel memory leak on duplicated instance.
Redis crash on Lua reaching output buffer limits.
Sentinel flushes config on +slave events.
3.0.002 Apr 2015 21:05
Redis Cluster: a distributed implementation of a subset of Redis.
New "embedded string" object encoding resulting in less cache
misses. Big speed gain under certain work loads.
AOF child - parent final data transmission to minimize latency due
to "last write" during AOF rewrites.
Much improved LRU approximation algorithm for keys eviction.
WAIT command to block waiting for a write to be transmitted to
the specified number of slaves.
MIGRATE connection caching. Much faster keys migraitons.
MIGARTE new options COPY and REPLACE.
CLIENT PAUSE command: stop processing client requests for a
specified amount of time.
BITCOUNT performance improvements.
CONFIG SET accepts memory values in different units (for example
you can use "CONFIG SET maxmemory 1gb").
Redis log format slightly changed reporting in each line the role of the
instance (master/slave) or if it's a saving child log.
INCR performance improvements.