* Wed Apr 20 2016 email@example.com
- Fix installation example in README.SUSE
* Wed Feb 17 2016 firstname.lastname@example.org
- Update to 3.0.7:
* [FIX] Many fixes to MIGRATE multiple keys implementation.
* [FIX] A Redis Cluster node crash was fixed because of wrong handling of
* [FIX] Fix redis-trib rebalance when nodes need to be left empty because
the specified weight is zero.
* [FIX] MIGRATE: Never send -ASK redirections for MIGRATE when there are
* [FIX] Lua debugger crash when printing too deeply nested objects.
* [FIX] Redis-cli implementation of Lua debugging now allows to use the
SCRIPT DEBUG command directly, switching to debugging mode as needed.
* [FIX] Redis-trib is now able to fix more errors. A new CLUSTER subcommand
called BUMPEPOCH was introduced in order to support new modes
for the "fix" subcommand.
* [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.
* [NEW] Cluster/Sentinel tests now use OSX leak to perform leak detection
at the end of every unit.
* [NEW] Detect and show server crashes during Cluster/Sentinel tests.
* [NEW] More reliable Cluster/Sentinel test becuase of timing errors and
- LOADING errors.
* [FIX] lua_struct.c/getnum security issue fixed.
* [FIX] Redis Cluster replica migration fixed.
* [FIX] Fix a race condition in processCommand() because of interactions
* [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.
* [NEW] Backported from the upcoming Redis 3.2:
Redis Cluster has now support for rebalancing via the redis-trib
rebalance command. Demo here:
* [NEW] Redis Cluster redis-trib.rb new "info" subcommand.
* [NEW] Redis Cluster tests improved.
* [NEW] Log offending memory access address on SIGSEGV/SIGBUS
* Sun Nov 22 2015 email@example.com
- Update to 3.0.5
* [FIX] MOVE now moves the TTL as well. A bug lasting forever...
finally fixed thanks to Andy Grunwald that reported it.
* [FIX] Fix a false positive in HSTRLEN test.
* [FIX] Fix a bug 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.
* [FIX] Slave detection of master timeout.
* [NEW] Cluster: redis-trib fix can fix an additional case for
* [NEW] Cluster: redis-trib import support for --copy and
- -replace options
* Thu Sep 24 2015 firstname.lastname@example.org
- update to 3.0.4
Upgrade urgency: HIGH for Redis and Sentinel. However note that in
order to fix certain replication bugs, 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 bug was found.
- [FIX] A number of bugs related to replication PSYNC and the (yet
experimental) diskless replication feature were fixed. The bugs
could lead to inconsistency between masters and slaves. (Salvatore
Sanfilippo, Oran Agra fixed the issue found by Yuval Inbar)
- [FIX] A replication bug in the context of PSYNC partial
resynchonization was found and fixed. This bug 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)
- [FIX] Chained replication and PSYNC interactions leading to
potential stale chained slaves data set, see issue #2694. (Salvatore
Sanfilippo fixed an issue reported by "GeorgeBJ" user at Github)
- [FIX] redis-cli --scan iteration fixed when returned cursor
overflows 32 bit signed integer. (Ofir Luzon, Yuval Inbar)
- [FIX] Sentinel: fixed a bug 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 bug 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 bug and its effects can be
found in the commit message here:
The bug was found by Jan-Erik Rediger using a static analyzer and
fixed by Salvatore Sanfilippo.
- [FIX] Sentinel lack of arity checks for certain commands. (Rogerio
Goncalves, Salvatore Sanfilippo)
- [NEW] Replication internals rewritten in order to be more resistant
to bugs. The replication handshake in the slave side was rewritten
as a non blocking state machine. (Salvatore Sanfilippo, Oran Agra)
- [NEW] New "replication capabilities" feature introduced in order to
signal from the master to the slave what are the features supported,
so that the master can choose the kind of replication to start
(diskless or not) when master and slave are of different versions.
(Oran Agra, Salvatore Sanfilippo)
- [NEW] Log clients details when SLAVEOF command is received.
(Salvatore Sanfilippo with inputs from Nick Craver and Marc
* Mon Sep 07 2015 email@example.com
- update to 3.0.3
* [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.
* [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.
* [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.
- added missing sentinel link
* Mon Jun 15 2015 firstname.lastname@example.org
- also pass the bind address to the redis-cli for shutdown
* Sun Jun 07 2015 email@example.com
- update to 3.0.2
* [FIX] Critical security issue fix by Ben Murphy:
* [FIX] SMOVE reply fixed when src and dst keys are the same.
* [FIX] Lua cmsgpack lib updated to support str8 type.
* [NEW] ZADD support for options: NX, XX, CH. See new doc at
redis.io. (Salvatore Sanfilippo)
* [NEW] Senitnel: CKQUORUM and FLUSHCONFIG commands back ported.
* Sat May 16 2015 Led <firstname.lastname@example.org>
- update to 3.0.1
* 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.
* Thu Apr 02 2015 email@example.com
- update to 3.0.0
>> What's new in Redis 3.0 compared to Redis 2.8?
* 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
* INCR performance improvements.
>> Refactoring changes (no new features nor bug fixes)
* Blocking operations full refactoring (blocked.c)
* Client output buffer memory tracking refactored.
for all the details see
- refreshed redis-enable-bactrace-on-x86-and-ia64-only.patch to
* Wed Apr 01 2015 firstname.lastname@example.org
- make sure we do not daemonize
* Wed Apr 01 2015 email@example.com
- finished systemd support
* Mon Mar 30 2015 firstname.lastname@example.org
- update to 2.8.19
- Don't log admin commands in MONITOR. (antirez)
- List of commands flagged as admin commands modified. (antirez)
- Lua cmsgpack lib updated to latest version. (antirez)
- Add symlink to redis-sentinel during make install (Rhommel
- SORT: Don't sort Set elements if not needed. (antirez)
- Fix zero-ordering SORT when called against lists (Matt
- Update redis_init_script.tpl (Ben Dowling)
- FIXED redis-benchmark's idle mode.With idle mode shouldn't
create write event (zhanghailei)
- zipmap.c: update comments above (Sun He)
- replaced // comments #2150 (Deepak Verma)
- redis-benchmark AUTH command to be discarded after the first
send #2150 (azure provisioned user)
- sds.c: Correct two spelling mistakes in comments (Sun He)
- sds.c/sdscatvprintf: set va_end to finish va_list cpy (Sun He)
- sds.c: Correct some comments (Sun He)
- Update whatisdoing.sh (Serghei Iakovlev)
- Include stropts only if __sun is defined. (antirez)
- Fix implicit declaration of ioctl on Solaris (Jan-Erik Rediger)
- Silence _BSD_SOURCE warnings in glibc 2.20 and forward (Johan
- Mark whatisdoing.sh as deprecated in top-comment. (antirez)
- getting pid fixes (Serghei Iakovlev)
- sparkline.c: AddSample skip Empty label (Sun He)
- sparkline.c: mov label-ini into the AddSample Function (Sun He)
- Only ignore sigpipe in interactive mode (Jan-Erik Rediger)
- Simplify lua_cmsgpack macro and fix build on old Linux distros.
* Thu Feb 12 2015 email@example.com
- redis requires sudo for the systemv-init script.
As of openSUSE 13.2 sudo is not implicitly included in the dependency tree.
* Sat Dec 06 2014 firstname.lastname@example.org
- update to 2.8.18
* [FIX] Linenoise updated to be more VT100 compatible. (Salvatore Sanfilippo)
* [FIX] A number of typos fixed inside comments. (Various authors)
* [FIX] redis-cli no longer quits after long timeouts. (Matt Stancliff)
* [FIX] Test framework improved to detect never terminating scripts, cleanup
instances on crashes. (Salvatore Sanfilippo)
* [FIX] PFCOUNT can be used on slaves now. (Salvatore Sanfilippo)
* [FIX] ZSCAN no longer report very small scores as 0. (Matt Stancliff,
Michael Grunder, Salvatore Sanfilippo)
* [FIX] Don't show the ASCII logo if syslog is enabled. Redis is now
an Enterprise Grade product. (Salvatore Sanfilippo)
* [NEW] EXPERIMENTAL: Diskless replication, for more info check the doc at
http://redis.io/topics/replication. (Salvatore Sanfilippo).
* [NEW] Transparent Huge Pages detection and reporting in logs and
LATENCY DOCTOR output. (Salvatore Sanfilippo)
* [NEW] Many Lua scripting enhancements: Bitops API, cjson upgrade and tests,
cmsgpack upgrade. (Matt Stancliff)
* [NEW] Total and instantaneous Network bandwidth tracking in INFO.
* [NEW] DEBUG POPULATE two args form implemented (old form still works).
The second argument is the key prefix. Default is "key:" (Salvatore
* [NEW] Check that tcp-backlog is matched by /proc/sys/net/core/somaxconn, and
warn about it if not. (Salvatore Sanfilippo)
for the rest see /usr/share/doc/packages/redis/00-RELEASENOTES
* Sun Nov 09 2014 Led <email@example.com>
- fix bashisms in pre script
* Mon Jul 28 2014 firstname.lastname@example.org
- remove unused skip-aof-test.patch
* Fri Jul 25 2014 email@example.com
- update to 2.8.13
* [FIX] CLIENT KILL minor backward compatibility fixes.
* [FIX] Enable HAVE_ATOMIC for PowerPC. (Matt Stancliff)
* [FIX] More robust PSYNC and AOF rewrites tests.
* [FIX] Solaris build fixed.
(Matt Stancliff, Salvatore Sanfilippo)
* [NEW] The new latency monitoring feature, as documented at
* [NEW] The COMMAND command, exposing the Redis command table
as an API. (Matt Stancliff)
* [NEW] Update used memory with C11 __atomic. (Matt Stancliff)
- additional changes from 2.8.12
* [FIX / BREAKS BACKWARD COMPATIBILITY] Using SELECT inside Lua
scripts no longer makes the selected DB to be set in the
calling client. So Lua can still use SELECT, but the client
calling the script will remain set to the original DB. Thix
fixes an issue with Redis replication of Lua scripts that
called SELECT without reverting the selected DB to the original
one. (Salvatore Sanfilippo)
* [FIX] Sentinel failover was instalbe if the master was detected
as available during the failover (especially during manual
failovers) because of an implementation error (lack of checking
of SRI_PROMOTED flag). (Salvatore Sanfilippo)
* [FIX] Cancel SHUTDOWN if initial AOF is being written.
* [FIX] Sentinel: bind source address for outcoming connections.
* [FIX] Less timing sensitive Sentinel tests.
* [NEW] redis-cli --intrinsic-latency stopped with SIGINT still
reports stats (Matt Stancliff)
* [NEW] Sentinels broadcast an HELLO message ASAP after a
failover in order to reach a consistent state faster (before it
relied for periodic HELLO messages). (Salvatore Sanfilippo).
* [NEW] Jemalloc updated to 3.6.0. (Salvatore Sanfilippo)
* [NEW] CLIENT LIST speedup. (Salvatore Sanfilippo)
* [NEW] CLIENT LIST new unique incremental ID to every client.
* [NEW] ROLE command added. (Salvatore Sanfilippo)
* [NEW] CLIENT KILL new form to kill by client type and ID (see
doc at redis.io for more info). (Salvatore Sanfilippo)
* [NEW] Sentinel now disconnects clients when instances are
reconfigured (see http://redis.io/topics/sentinel-clients).
* [NEW] Hiredis update to latest version. (Matt Stancliff)
- additional changes from 2.8.11
[#] UPGRADE URGENCY: HIGH if you use Lua scripting, LOW otherwise.
* [FIX] A previous fix for Lua -> Redis numerical precision
enhancement introduced a new problem. In Redis 2.8.10 commands
called from Lua passing a string that "looks like" a very large
number, may actually use as argument the string converted as a
float. This bug is now fixed.
* [FIX] Now commands other than *PUSH* adding elements to a list
will be able to awake clients blocked in a blocking POP
* [FIX] Cygwin compilation fixes.
- additional changes from 2.8.10
[#] UPGRADE URGENCY: HIGH if you use min-slaves-to-write option.
* [FIX] IMPORTANT! A min-slaves-to-write option active in a slave
totally prevented the slave from acception the master stream of
commands. This release includes testes for
min-slaves-to-write, and a fix for this issue.
* [FIX] Sometimes DEL returned 1 for already expired keys. Fixed.
* [FIX] Fix test false positive because new osx 'leaks' output.
* [FIX] PFCOUNT HLL cache invalidation fixed: no wrong value was
reported but the cache was not used at all, leading to lower
* [FIX] Accept(2) multiple clients per readable-event invocation,
and better processing of I/O while loading or busy running a
timedout script. Basically now the LOADING / BUSY errors are
reported at a decent speed.
* [FIX] A softwaer watchdog crash fixed.
* [FIX] Fixed a Lua -> Redis numerical precision loss.
* [NEW] Lua scripting engine speed improved.
* [NEW] Sentinel generates one new event for humans to understand
better what is happening during a failover:
+config-update-from. Also the time at which a failover will be
re-attempted is logged.
- additional changes from 2.8.9
[#] UPGRADE URGENCY: LOW, only new features introduced, no bugs fixed.
* [NEW] The HyperLogLog data structure. You can read more about
it in this blog post. http://antirez.com/news/75
* [NEW] The Sorted Set data type has now support for
lexicographic range queries, check the new commands
ZRANGEBYLEX, ZLEXCOUNT and ZREMRANGEBYLEX, which are documented
- additional changes from 2.8.8
[#] UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. There is a
potentially critical bug fix causing data loss in Redis but it
requires a combination of disk full and the use of the SHUTDOWN
* [FIX] Fixed data loss when SHUTDOWN was used with a disk full
* [FIX] Fixed a memory leak in the SORT syntax error processing.
* [FIX] When Sentinel down-after-milliseconds parameter is
modified at runtime now it gets propagated to all the slaves
and sentinel instances of the master.
* [FIX] `install_server.sh` script finally fixed.
* [FIX] Different fixes to maxclients handling.
* [NEW] Sentinels are now able to send update messages in a
peer-to-peer fashion even if no Redis instances are available.
Now the Sentinel liveness property that the most updated
configuration in a given partition is propagated to all the
Sentinels is extended to partitions without reachable
* [NEW] Sentinel safety properties are now ensured in a
crash-recovery system model since some state is persisted on
disk before replying to other nodes, and reloaded at startup.
* [NEW] Sentinel now uses CLIENT SETNAME so that it is easy to
identify Sentinels using CLIENT LIST among other clients.
* [NEW] Sentinel failure detection and reconnection code
* [NEW] Use all 24 bits (instead of 22) for the Redis objects LRU
field. Note that the new LRU algorithm using eviction pools
was not backported from unstable for safery / code maturity
* [NEW] Majory speedup for the INFO command (it is now 6 times
* [NEW] More Sentinel unit tests.
* [NEW] New command DEBUG ERROR returns the specified error.
Example: DEBUG ERROR "LOADING database". This is handy to write
Redis client libraries unit tests.
* [NEW] redis-cli now supports multi-line editing via updated
Thanks to Matt Stancliff and Jan-Erik Rediger for the work done
in the context of this release.
- additional changes from 2.8.7
[#] UPGRADE URGENCY: LOW for Redis, LOW for Sentinel. However this
release adds new features so users may want to upgrade in order
to exploit the new functionalities.
* [FIX] Sometimes the absolute config file path was obtained in a
wrong way. This happened when there was a "dir" directive
inside the config file and at the same time the configuration
file was given as a relative path to redis-server or
* [FIX] redis-cli: Automatically enter --slave mode when SYNC or
PSYNC are called during an interactive session.
* [FIX] Sentinel "IDONTKNOW" error removed as it does not made
sense with the new Sentinel design. This error was actually a
fix for a design error in the first implementation of Sentinel.
* [FIX] Sentinel: added a missing exit() call to abort after
config file checks at startup. This error was introduced with
an improvement in a previous 2.8 release.
* [FIX] BITCOUNT: fixed unaligned access causing issues in sparc
and other archs not capable of dealing with unaligned accesses.
This also makes the code faster in archs where unaligned
accesses are allowed.
* [FIX] Sentinel: better nodes fail over start time
desynchronization to avoid split-brain during the voting
process needed to get authorization to fail over. This means
the system is less likely to need to retry and will fail over
faster. No changes in behavior / correctness.
* [FIX] Force INFO used_memory_peak to match peak memory. This
generated some confusion among users even if it was not an
* [NEW] Sentinel unit tests and framework. More tests needed and
units must be improved in order to have less false positives,
but it is a start and features a debugging console that is
useful to fix tests or to inspect bugs causing tests failures.
* [NEW] New Sentinel events: +/-monitor and +set used to monitor
when an instance to monitor is added or removed, or when a
configuration is modified via SENTINEL SET.
* [NEW] Redis-cli updated to use SCAN instead of random sampling
via RANDOMKEY in order to implement --bigkeys feature. Moreover
the implementation now supports pipelining and reports more
information at the end of the scan. Much faster, much better. A
special thank you to Michael Grunder for this improvement.
* [NEW] redis-cli now supports a new --intrinsic-latency mode
that is able to meter the latency of a system due to kernel /
hypervisor. How to use it is explained at
* [NEW] New command BITPOS: find first bit set or clear in a
* [NEW] CONFIG REWRITE calls are now logged.
* Tue Mar 04 2014 firstname.lastname@example.org
- update to 2.8.6
Redis 2.6 is mostly a strict subset of 2.8. However there are a
few things that you should be aware of:
The following commands changed behavior:
* SORT with ALPHA now sorts according to local collation locale
if no STORE option is used.
* ZADD/ZINCRBY are now able to accept a bigger range of values
as valid scores, that is, all the values you may end having
as a result of calling ZINCRBY multiple times.
* Many errors are now prefixed by a more specific error code
instead of the generic -ERR, for example -WRONGTYPE, -NOAUTH, ...
* PUBLISH called inside Lua scripts is now correctly propagated
The following redis.conf and CONFIG GET / SET parameters changed:
* logfile now uses the empty string in order to log to standard
output, so 'logfile stdout' is now invalid, use 'logfile ""'
The following INFO fields changed format in a non-backward compatible way:
* The list of slaves in INFO is now in field=value format.
Redis 2.8 can be used as slave for Redis 2.6, but doing this is
only a good idea for the short amount of time needed to upgrade
your servers. We suggest to update both master and slaves at
about the same time.
For all the details see
- updated redis-conf.patch to apply cleanly again
* Thu Aug 08 2013 email@example.com
- drop skip-aof-test.patch
* Thu Aug 08 2013 firstname.lastname@example.org
- drop skip-aof-test.patch