<ChangeLog>
--[ Redis 2.8.11 ] Release date: 11 Jun 2014
# 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 operation.
* [FIX] Cygwin compilation fixes.
--[ Redis 2.8.10 ] Release date: 5 Jun 2014
# 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 performances.
* [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.
</ChangeLog>
<ChangeLog>
# 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 at http://redis.io.
</ChangeLog>
<ChangeLog>
# 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 redis-sentinel executables.
* [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 actual bug.
* [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 http://redis.io/topics/latency.
* [NEW] New command BITPOS: find first bit set or clear in a bitmap.
* [NEW] CONFIG REWRITE calls are now logged.
</ChangeLog>
<ChangeLog>
--[ Redis 2.8.6 ] Release date: 13 Feb 2014
# UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. Redis users using Lua
scripts with EVALSHA and attached slaves and/or AOF
persistence should consider upgrading ASAP.
* [FIX] Fixed an critical EVALSHA script cache bug: scripts executed may not
propagate to AOF / Slaves correctly under certain conditions.
See issue #1549 at Github for more information.
* [FIX] Fixed multiple bugs resulting into closing the link with master or slave
during replication without good reasons. This will result in useless
resynchronizations, or infinite loops where the replication link can't
be established.
* [FIX] Don't count the time needed to populate the buffers of clients waiting
in MONITOR mode when populating the Slow Log entries.
* [NEW] AOF write errors (like no space on device) no longer abort Redis if the
fsync policy is none or every second. The database enters a read-only
mode where every write is refused with an error. Normal operations are
restored as soon as Redis is able to append again data to the AOF file.
* [NEW] Sentinel now accepts SHUTDOWN command.
--[ Redis 2.8.5 ] Release date: 4 Feb 2014
# UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. Redis users using Lua
scripts with expires, and Redis users relying on the
ability of Redis to block writes on RDB saving errors
should plan to upgrade ASAP.
* [FIX] Fixed a replication bug caused by Lua scripts + expired keys: keys could
expire in the middle of scripts causing non-deterministic behavior.
* [FIX] MISCONFIG error if condition fixed, the server was no longer able
to stop writes on RDB misconfiguration after this error was introduced.
* [FIX] REDIS_AOF_REWRITE_MIN_SIZE is now 64mb like example redis.conf default.
* [FIX] Perform fflush() before fsync() in rio.c (bug without actual effects).
* [FIX] Don't log MONITOR clients as disconnecting slaves.
* [FIX] SENTINEL MASTER arity check fixed. Crashed the Sentinel instance when
the command was given without arguments.
* [NEW] Allow CONFIG and SHUTDOWN while in stale-slave state.
* [NEW] Support for configurable TCP listen(2) backlog size.
* [NEW] redis-cli supports SCAN via the --scan and --pattern options.
* [NEW] SENTINEL SET master quorum via runtime API implemented.
</ChangeLog>
<ChangeLog>
# UPGRADE URGENCY: MODERATE for Redis and Sentinel.
* [FIX] Makefile compatibility with non common make variants improved.
* [FIX] SDIFF crash in very unlikely to trigger state fixed.
* [FIX] Config rewriting fixed: don't wipe options unknown to the rewrite
process.
* [FIX] Set TCP port to 0 works again to disable TCP networking.
* [FIX] Fixed replication with old Redis instances as masters by not
sending REPLCONF ACK to them.
* [FIX] Fix keyspace notifications rewrite and CONFIG GET output.
* [FIX] Fix RESTORE TTL handling in 32 bit systems (32 bit overflow).
* [NEW] Sentinel now has a run time configuration API.
* [NEW] Log when we lost connection with master or slave.
* [NEW] When instance is turned from slave to master now inherits the
old master replication offset when possible. This improves the
Sentinel failover procedure.
</ChangeLog>
Use modern name for dependent libraries.
<ChangeLog>
# UPGRADE URGENCY: MODERATE for Redis, HIGH for Sentinel.
* [FIX] Sentinel instance role sampling fixed, the system is now more
reliable during failover and when reconfiguring instances with
non matching configuration.
* [FIX] Inline requests are now handled even when terminated with just LF.
* [FIX] Replication timeout handling greatly improved, now the slave is able
to ping the master while removing the old data from memory, and while
loading the new RDB file. This avoid false timeouts sensed by
masters.
* [FIX] Fixed a replication bug involving 32 bit instances and big datasets
hard to compress that resulted into more than 2GB of RDB file sent.
* [FIX] Return error for inline requests with unbalanced quotes.
* [FIX] Publish the slave replication offset even when disconnected from the
master if there is still a cached master instance.
</ChangeLog>
<ChangeLog>
# UPGRADE URGENCY: MODERATE for both Redis and Sentinel.
* [FIX] Sentinel better desynchronization to avoid split-brain elections
where no Sentinel managed to get elected.
* [FIX] Stop accepting writes on "MISCONF" error only if master, not slave.
* [FIX] Reply to PING with an error on "MISCONF" errors.
</ChangeLog>
<ChangeLog>
# UPGRADE URGENCY: LOW for Redis, CRITICAL for Senitnel. You don't need to
upgrade your Redis instances but it is highly recommended
to upgrade and restart all the Sentinel processes.
* [FIX] Fixed a bug in "new Sentinel" config propagation.
* [FIX] Fixed a false positive in Redis tests.
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: MODERATE.
* [FIX] Stop writes when fork() fails when trying to BGSAVE. BGSAVE errors
were trapped only in the case the saving child failed, so the fork()
error was no trapped as no child is created at all.
* [FIX] Fix a serious memory efficiency regression, Redis 2.6.16 is
significantly better with large values (>= a few kbytes) and will
be able to store two times the amount of data compared to Redis 2.6.15
when values are in that range.
* [FIX] Fixed an issue with Table conversion in the lua-cmsgpack library exposed
by the Redis scripting engine.
* [NEW] DEBUG SDSLEN was introduced to debug memory inefficiencies due to
SDS allocation more easily.
</ChangeLog>
Add support for lang/lua, disabled by default.
<ChangeLog>
UPGRADE URGENCY: MODERATE, upgrade ASAP only if you experience issues related to
the expired keys collection algorithm, or if you use the
ZUNIONSTORE command.
* [FIX] Improved expired keys collection algorithm. Even under heavy load keys
to be expired can't accumulate because of lack of CPU time.
* [FIX] Fixed Issue #1240, ZUNIONSTORE could lead to wrong result.
* [NEW] redis-benchmark improvements.
* [NEW] dict.c API wrong usage detection.
WARNING: redis-benchmark released with 2.6.15 features non backward compatible
change in the way the random arguments are specified, use the --help
option for more information.
</ChangeLog>
PR: 179745
<ChangeLog>
UPGRADE URGENCY: HIGH because of the following two issues:
* Lua scripting + Replication + AOF in slaves problem (see Issue #1164).
* AOF + expires possible race condition (see Issue #1079).
* [FIX] AOF bug: expire could be removed from key on AOF rewrite.
* [FIX] Allow writes from scripts called by AOF loading in read-only slaves.
* [FIX] Sentinel: parse new verison of INFO replication output correctly.
* [NEW] Reset masterauth if an empty string is configured.
</ChangeLog>
PR: 178124
<ChangeLog>
[ Redis 2.6.13 ]
UPGRADE URGENCY: MODERATE, nothing very critical but upgrading
is suggested if you experienced:
1) Strange issues with Lua scripting.
2) Not reconfigured reappearing master using Sentinel.
3) Server continusly trying to save on save error.
This version of Redis may also help with AOF and slow / busy
disks and latency issues.
* [FIX] Throttle BGSAVE attempt on saving error.
* [FIX] redis-cli: raise error on bad command line switch.
* [FIX] Redis/Jemalloc Gitignore were too aggressive.
* [FIX] Test: fix RDB test checking file permissions.
* [FIX] Sentinel: always redirect on master->slave transition.
* [FIX] Lua updated to version 5.1.5. Fixes rare scripting issues.
* [NEW] AOF: improved latency figures with slow/busy disks.
* [NEW] Sentinel: turn old master into a slave when it comes back.
* [NEW] More explicit panic message on out of memory.
* [NEW] redis-cli: --latency-history mode implemented.
[ Redis 2.6.12 ]
UPGRADE URGENCY: MODERATE, nothing very critical but a few non trivial bugs.
* [BUGFIX] redis-cli --bigkeys: don't crash with empty DB.
* [BUGFIX] stop-writes-on-bgsave-error now works in redis.conf
* [BUGFIX] Don't crash at startup if RDB is there but can't be opened.
* [BUGFIX] Initial value for master_link_down_since_seconds is now huge.
* [BUGFIX] Allow SELECT while loading the DB.
* [BUGFIX] Don't replicate/AOF an empty MULTI/EXEC if the transaction
is empty or containing just read-only commands.
* [BUGFIX] EXPIRE should not be able to resurrect keys (see issue #1026).
* [IMPROVED] Extended SET back ported from Redis 2.8 / unstable
See http://redis.io/commands/set for more information.
* [IMPROVED] Test suite improved.
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: LOW, however updating is encouraged if you have many instances
per server and you want to lower the CPU / energy usage.
* [BUGFIX] Replication: more strict error checking for master PING reply.
* [BUGFIX] redis-cli: use keepalive socket option for improved reliability.
* [BUGFIX] Allow AUTH while loading the DB in memory.
* [BUGFIX] Don't segfault on unbalanced quotes while parsing config file.
* [IMPROVED] serverCron() frequency is now a runtime parameter (was REDIS_HZ).
* [IMPROVED] Use a lot less CPU when idle, even with many configured DBs.
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: MODERATE, this release contains many non-critical fixes
and many small improvements.
* [BUGFIX] redis-cli --rdb, fixed when the server sends newlines to ping.
* [BUGFIX] redis-cli, minor fixes on connection handling, prompt.
* [BUGFIX] Slow log: don't log EXEC, just executed commands.
* [BUGFIX] On failed shutdown don't try again and again compulsively.
* [BUGFIX] Fix build on sunos without backtrace().
* [BUGFIX] UNSUBSCRIBE and PUNSUBSCRIBE: always provide a reply (see 742e580)
* [BUGFIX] Lua struct library was broken, upgraded.
* [BUGFIX] Fix a bug in srandmemberWithCountCommand() with count argument.
* [BUGFIX] Test: disable clients timeout to prevent issues on slow systems.
* [BUGFIX] Sentinel: don't advertise the promoted slave as master too early.
* [IMPROVED] Whitelist SIGUSR1, see http://redis.io/topics/signals.
* [IMPROVED] Simpler to understand redis-cli --bigkeys output.
* [IMPROVED] Test now works with tclsh > 8.5.
* [IMPROVED] Added option to turn of the Nagle algorithm in slave socket.
* [IMPROVED] Optionally use SO_KEEPALIVE to detect dead peers.
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: MODERATE if you use replication.
* [BUGFIX] Changing master at runtime (SLAVEOF command) in presence of
network problems, or in very rapid succession, could result
in non-critical problems (GitHub Issue #828).
* [IMPROVED] CLINGET GETNAME and SETNAME to set and query connection names
reported by CLIENT LIST. Very useful for debugging of
problems.
* [IMPROVED] redis-cli is now able to transfer an RDB file from a remote
server to a local file using the --rdb <filename> command
line option.
</ChangeLog>
Add experimental support for lang/luajit, disabled by default.
<ChangeLog>
UPGRADE URGENCY: MODERATE if you use Lua scripting. Otherwise LOW.
* [BUGFIX] Multiple fixes for EVAL (issue #872).
* [BUGFIX] Fix overflow in mstime() in redis-cli and benchmark.
* [BUGFIX] Fix Linux / PPC64 behavior by correcting endianess detection.
* [BUGFIX] Fix NetBSD build by defining _XOPEN_SOURCE appropriately.
* [BUGFIX] Added missing license and copyright in a few places.
* [BUGFIX] Better error reporting when fd event creation fails.
</ChangeLog>
PR: 174084
Feature safe: yes
<ChangeLog>
UPGRADE URGENCY: MODERATE (unless you BLPOP using the same key multiple times).
* [BUGFIX] Don't crash if BLPOP & co are called with the same key repeated
multiple times (Issue #801).
</ChangeLog>
Feature safe: yes
<ChangeLog>
UPGRADE URGENCY: CRITICAL if you experienced one more more crashes.
MODERATE if Redis is running fine for you.
* [BUGFIX] Jemalloc updated to 3.2.0.
</ChangeLog>
Feature safe: yes
<ChangeLog>
UPGRADE URGENCY: MODERATE
Warning: this release of Redis introduces a different behavior in MULTI/EXEC
handling of errors. This was done because the new behavior is safer
compared to the old one, and should not break any code targeting
Redis 2.6 in a critical way.
For more information check http://redis.io/topics/transactions
* [IMPROVED] RDB/AOF childern now log amount of additional memory used
because of copy on write.
* [BUGFIX] MIGRATE non critical fixes (see commits for details).
* [BUGFIX] MULTI/EXEC: now EXEC aborts on errors before EXEC.
* [BUGFIX] Fix integer overflow in zunionInterGenericCommand resulting
into Z[INTER|UNION][STORE] commands to crash under extremely
unlikely conditions (almost impossible in real world).
* [BUGFIX] EVALSHA is now case insensitive (and will not crash).
</ChangeLog>
Feature safe: yes
<ChangeLog>
* [BUGFIX] Fixed 32 bit build on Linux systems.
* [BUGFIX] MONITOR and CLIENT LIST: propertly display unix socket clients.
* [IMPROVED] redis-cli inline help updated.
* [IMPROVED] Marginally more robust AOF child handling.
* [IMPROVED] Fixed a few typos in comments.
</ChangeLog>
<ChangeLog>
* INFO command now contains the run_id field for Redis Sentinel compatibility.
* Support for the "slave priority" parameter published via INFO and used by
Redis Sentinel.
* [BUGFIX] An optimization to convert double values into strings was not used
because of an error in a preprocessor directive. Now it's fixed. Saving
datasets with many sorted sets should be faster.
* [BUGFIX] Fixed a theoretic bug in the ziplist implementation.
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: moderate if you use AOF, otherwise low.
* [BUGFIX] Jemalloc updated to 3.0.0. This fixes a possibly AOF rewrite issue.
See https://github.com/antirez/redis/issues/504 for info.
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: high, many non trivial bugs fixed in this release.
* [BUGFIX] Fixed issue #518 (Redis 99% CPU when master down).
* [BUGFIX] Fixed issue #516 (ZINTERSTORE mixing sets and zsets).
* [BUGFIX] Fixed a bug in install_server.sh when using chkconfig
* [BUGFIX] Fixes to --test-memory implementation.
* [BUGFIX] Allow PREFIX to be overridden in Makefile.
* [BUGFIX] The test is now more reliable on slow computers.
* redis-cli --pipe mode, see http://redis.io/topics/mass-insert
* Much better expired keys collection algorithm that makes the server much
more responsive when a lot of keys are expiring at the same time.
</ChangeLog>
<ChangeLog>
What's new in Redis 2.4.13
==========================
UPGRADE URGENCY: high for all the users of the KEYS command,
otherwise low.
* [BUGFIX] Fix for KEYS command: if the DB contains keys with
expires the KEYS command may return the wrong output,
having duplicated or missing keys. See issue #487
and #488 on github for details.
What's new in Redis 2.4.12
==========================
UPGRADE URGENCY: low if you don't experience any of the fixed
problems.
* [BUGFIX] Limit the amount of memory consumed by the slow log.
* [BUGFIX] --test-memory option fixes.
* [BUGFIX] Less false positives in tests.
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: moderate if you don't experience any of the fixed problems.
* [BUGFIX] Fixed a problem with aeWait() implementation. May cause a crash
under non easy to replicate condiitons. See issue #267 on github.
* [BUGFIX] SORT with GET/BY option fetching expiring keys fixed. Issue #460.
* [BUGFIX] INFO field master_link_down_since_seconds initialized correctly.
* [FEATURE] redis-cli back ported from Redis unstable. Now has support for
--bigkeys (to sample the DB for very large keys), --slave to
simulate a slave instance.
</ChangeLog>
Feature safe: yes
<ChangeLog>
UPGRADE URGENCY: High for users using replication with a DB identifier
higher than 9, or chaining replication so that slaves are attached to
other slaves. Low for all the other users.
* [FEATURE] Redis --test-meory improved with new test testing addressing.
* [BUGFIX] Fixed a memory leak: happens when replication is used with
DB > 9.
* [BUGFIX] Fixed a replication bug that happens in chained replicaiton
when a slave is attached to a master that is later turned into a slave.
Now the chained slave reconnection is properly forced.
</ChangeLog>
Feature safe: yes
<ChangeLog>
UPGRADE URGENCY: low. Mostly new features and minor bug fixing.
* [FEATURE] Redis server is now able to test your memory for broken RAM.
Usage: ./redis-server --test-memory <megabytes>.
* [FEATURE] redis-benchmark backported from unstable. Pipelining, run selected
tests, and a few more features.
* [BUGFIX] utils/install_server.sh script now works on Redhat / Centos.
* [BUGFIX] Minor fix to redis-cli (github issue #306).
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: moderate if you don't experience any of the fixed problems.
* [BUGFIX] Make install now uses cp -f to avoid 'text file busy' errors.
* [BUGFIX] redis-check-aof is now large files safe also on 32 bit systems.
* [BUGFIX] Issue #327 fixed: maxmemory and replication now work much better.
* [BUGFIX] Now HINCRBY can detect overflows too. Fix for issue #330.
* [BUGFIX] Fixed compilation with latest clang.
* [BUGFIX] Fixed handling of empty sorted sets produced in RDB by
very old Redis versions (1.2.x).
</ChangeLog>
<ChangeLog>
UPGRADE URGENCY: low/moderate if you don't experience any of the fixed
problems.
* [BUGFIX] Fixed false positive in issue #141 regression test.
* [BUGFIX] Slave should not expire keys when loading an RDB after a SYNC.
* [BUGFIX] Don't increment stats for key misses / hits when key is written.
* [BUGFIX] sds.c library now don't allocate more than 1MB ahead.
* 32 bit instances without a maxmemory set now get a default limit of 3.5GB
with maxmemory-policy set to noeviction.
* Better crash report on crash (containing current client and command arguments).
</ChangeLog>
literal name_enable wherever possible, and ${name}_enable
when it's not, to prepare for the demise of set_rcvar().
In cases where I had to hand-edit unusual instances also
modify formatting slightly to be more uniform (and in
some cases, correct). This includes adding some $FreeBSD$
tags, and most importantly moving rcvar= to right after
name= so it's clear that one is derived from the other.
<ChangeLog>
* [BUGFIX] Fixed issue #141 part 1: Possible protocol desyncs when clients send
wrong protocol is now fixed. (See issue 141 for more details)
* [BUGFIX] Fixed issue #141 part 2: Connection of multiple slaves used to result
from time to time into corrupted protocol send to slaves connected
after the first one. (See issue 141 for more details)
* [BUGFIX] Do not propagate DEBUG LOADAOF.
* New INFO contains information such as ip/port/state for every conneced slave.
* Show GCC version in INFO output.
</ChangeLog>