2013-07-18 11:26:53 +02:00
|
|
|
Redis 2.8 release notes
|
2012-05-25 12:24:20 +02:00
|
|
|
=======================
|
2012-02-05 11:08:01 +01:00
|
|
|
|
2013-07-18 11:26:53 +02:00
|
|
|
** IMPORTANT ** Check the 'Migrating from 2.6 to 2.8' section at the end of
|
2013-07-18 16:10:31 +02:00
|
|
|
this file for information about what changed between 2.6 and
|
|
|
|
2.8 and how this may affect your application.
|
2012-02-05 11:08:01 +01:00
|
|
|
|
2013-07-18 11:26:53 +02:00
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
Upgrade urgency levels:
|
|
|
|
|
|
|
|
LOW: No need to upgrade unless there are new features you want to use.
|
|
|
|
MODERATE: Program an upgrade of the server, but it's not urgent.
|
|
|
|
HIGH: There is a critical bug that may affect a subset of users. Upgrade!
|
|
|
|
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
2014-03-05 14:42:50 +01:00
|
|
|
--[ Redis 2.8.7 ] Release date: 5 Mar 2014
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
2014-02-13 15:43:40 +01:00
|
|
|
--[ 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.
|
|
|
|
|
2014-02-04 11:17:21 +01:00
|
|
|
--[ 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.
|
|
|
|
|
2014-01-13 17:09:53 +01:00
|
|
|
--[ Redis 2.8.4 ] Release date: 13 Jan 2014
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
2013-12-11 15:31:57 +01:00
|
|
|
--[ Redis 2.8.3 ] Release date: 11 Dec 2013
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
2013-12-02 16:07:46 +01:00
|
|
|
--[ Redis 2.8.2 ] Release date: 2 Dec 2013
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
2013-11-25 11:21:49 +01:00
|
|
|
--[ Redis 2.8.1 ] Release date: 25 Nov 2013
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
2013-11-22 10:25:24 +01:00
|
|
|
--[ Redis 2.8.0 ] Release date: 22 Nov 2013
|
|
|
|
|
|
|
|
# UPGRADE URGENCY: LOW, unless you want to upgrade to new Sentinel code.
|
|
|
|
|
|
|
|
* [FIX] Fixed an error in rdbWriteRaw() that should have no practical impact.
|
|
|
|
* [NEW] Log the new master when SLAVEOF command is used.
|
|
|
|
* [NEW] Sentinel code synchronized with the unstable branch, the new Sentinel
|
|
|
|
is a reimplementation that uses more reliable algorithms.
|
|
|
|
|
2013-11-10 10:25:09 +01:00
|
|
|
--[ Redis 2.8 Release Candidate 6 (2.7.106) ] Release date: 6 Nov 2013
|
2013-11-06 09:24:26 +01:00
|
|
|
|
|
|
|
This is the 6th release candidate of Redis 2.8 (official version is 2.7.106).
|
|
|
|
|
|
|
|
# UPGRADE URGENCY: LOW, only new features back ported, no fixes.
|
|
|
|
|
|
|
|
* [NEW] SCAN, SSCAN, HSCAN, ZSCAN commands.
|
|
|
|
|
2013-10-09 13:08:42 +02:00
|
|
|
--[ Redis 2.8 Release Candidate 5 (2.7.105) ] Release date: 9 Oct 2013
|
|
|
|
|
|
|
|
This is the 5th release candidate of Redis 2.8 (official version is 2.7.105).
|
|
|
|
Important bugs fixed inside.
|
|
|
|
|
|
|
|
# UPGRADE URGENCY: HIGH because of many non critical replication bugs fixed.
|
|
|
|
|
|
|
|
* [FIX] redis-cli: don't crash with --bigkeys when the key no longer exist.
|
|
|
|
* [FIX] Allow AUTH / PING when disconnected from slave and serve-stale-data is no.
|
|
|
|
* [FIX] PSYNC: safer handling of PSYNC requests with offsets in the future.
|
|
|
|
* [FIX] Replication: Fix master timeout detection.
|
|
|
|
* [FIX] Replication: Correctly install the write handler after successful PSYNC.
|
|
|
|
|
2013-08-30 09:52:06 +02:00
|
|
|
--[ Redis 2.8 Release Candidate 4 (2.7.104) ] Release date: 30 Aug 2013
|
|
|
|
|
|
|
|
This is the fourth release candidate of Redis 2.8 (official version is 2.7.104).
|
|
|
|
Important bugs fixed inside.
|
|
|
|
|
|
|
|
# UPGRADE URGENCY: HIGH because of the EVAL memory leak.
|
|
|
|
|
|
|
|
* [FIX] Fixed a serious EVAL memory leak in the Lua stack.
|
|
|
|
* [FIX] Fixed server startup when no IPv6 address exists in any interface.
|
|
|
|
* [FIX] Send MISCONFIG error when BGSAVE fails because can't fork.
|
|
|
|
* [FIX] Memory efficiency with large (> a few kbytes) values improved considerably.
|
|
|
|
* [NEW] DEBUG SDSLEN for sds memory debugging.
|
|
|
|
|
2013-08-19 18:04:32 +02:00
|
|
|
--[ Redis 2.8 Release Candidate 3 (2.7.103) ] Release date: 19 Aug 2013
|
|
|
|
|
|
|
|
This is the third release candidate of Redis 2.8 (official version is 2.7.103).
|
|
|
|
Important bugs fixed inside.
|
|
|
|
|
|
|
|
# UPGRADE URGENCY: HIGH
|
|
|
|
|
|
|
|
* [FIX] Improved expired keys collection algorithm. Even under heavy load keys
|
|
|
|
to be expired can't accumulate because of lack of CPU time.
|
|
|
|
* [FIX] Replication speed regression fixed (issue #1238).
|
|
|
|
* [FIX] Fixed an hard to trigger PSYNC bug.
|
|
|
|
* [FIX] Fixed Issue #1240, ZUNIONSTORE could lead to wrong result.
|
|
|
|
* [NEW] Add per-db average TTL information in INFO output.
|
|
|
|
* [NEW] redis-benchmark improvements.
|
|
|
|
* [NEW] dict.c API wrong usage detection.
|
|
|
|
|
2013-07-30 20:20:02 +02:00
|
|
|
--[ Redis 2.8 Release Candidate 2 (2.7.102) ] Release date: 30 Jul 2013
|
|
|
|
|
|
|
|
This is the second release candidate of Redis 2.8 (official version is 2.7.102).
|
|
|
|
Important bugs fixed inside.
|
|
|
|
|
|
|
|
# UPGRADE URGENCY: HIGH
|
|
|
|
|
|
|
|
* [FIX] Fixed a critical replication bug, see issue #1221.
|
|
|
|
* [NEW] The new inline protocol now accepts quoted strings like, for example
|
|
|
|
you can now type in a telnet session: set 'foo bar' "hello world\n".
|
|
|
|
|
2013-07-18 11:26:53 +02:00
|
|
|
--[ Redis 2.8 Release Candidate 1 (2.7.101) ] Release date: 18 Jul 2013
|
|
|
|
|
|
|
|
This is the first release candidate of Redis 2.8 (official version is 2.7.101).
|
|
|
|
|
|
|
|
The following is a list of improvements in Redis 2.8, compared to Redis 2.6.
|
|
|
|
|
|
|
|
* [NEW] Slaves are now able to partially resynchronize with the master, so most
|
2013-07-18 12:23:47 +02:00
|
|
|
of the times a full resynchronization with the RDB creation in the master
|
2013-07-18 11:26:53 +02:00
|
|
|
side is not needed when the master-slave link is disconnected for a short
|
|
|
|
amount of time.
|
2013-07-18 12:23:47 +02:00
|
|
|
* [NEW] Experimental IPv6 support.
|
|
|
|
* [NEW] Slaves explicitly ping masters now, a master is able to detect a timed out
|
2013-07-18 11:26:53 +02:00
|
|
|
slave independently.
|
|
|
|
* [NEW] Masters can stop accepting writes if not enough slaves with a given
|
2013-07-18 12:23:47 +02:00
|
|
|
maximum latency are connected.
|
2013-07-18 11:26:53 +02:00
|
|
|
* [NEW] Keyspace changes notifications via Pub/Sub.
|
|
|
|
* [NEW] CONFIG SET maxclients is now available.
|
|
|
|
* [NEW] Ability to bind multiple IP addresses.
|
|
|
|
* [NEW] Set process names so that you can recognize, in the "ps" command output,
|
|
|
|
the listening port of an instance, or if it is a saving child.
|
|
|
|
* [NEW] Automatic memory check on crash.
|
|
|
|
* [NEW] CONFIG REWRITE is able to materialize the changes in the configuration
|
|
|
|
operated using CONFIG SET into the redis.conf file.
|
|
|
|
* [NEW] More NetBSD friendly code base.
|
|
|
|
* [NEW] PUBSUB command for Pub/Sub introspection capabilities.
|
|
|
|
* [NEW] EVALSHA can now be replicated as such, without requiring to be expanded
|
|
|
|
to a full EVAL for the replication link.
|
|
|
|
* [NEW] Better Lua scripts error reporting.
|
2013-07-18 12:23:47 +02:00
|
|
|
* [NEW] SDIFF performance improved.
|
2013-07-18 11:26:53 +02:00
|
|
|
* [FIX] A number of bugfixes.
|
|
|
|
|
|
|
|
Migrating from 2.6 to 2.8
|
|
|
|
=========================
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
2013-07-18 12:23:47 +02:00
|
|
|
* SORT with ALPHA now sorts according to local collation locale if no STORE
|
2013-07-18 11:26:53 +02:00
|
|
|
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, ...
|
2013-07-18 12:23:47 +02:00
|
|
|
* PUBLISH called inside Lua scripts is now correctly propagated to slaves.
|
2013-07-18 11:26:53 +02:00
|
|
|
|
|
|
|
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 ""' instead.
|
|
|
|
|
|
|
|
The following INFO fields changed format in a non-backward compatible way:
|
|
|
|
|
|
|
|
* The list of slaves in INFO is now in field=value format.
|
|
|
|
|
|
|
|
Replication:
|
|
|
|
|
|
|
|
Redis 2.8 can be used as slave for Redis 2.6, but doing this is only
|
2013-07-18 12:23:47 +02:00
|
|
|
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.
|
2013-07-18 11:26:53 +02:00
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Credits: Where not specified the implementation and design is done by
|
|
|
|
Salvatore Sanfilippo. Thanks to VMware and Pivotal for making all
|
|
|
|
this possible. Also many thanks to all the other contributors and the amazing
|
|
|
|
community we have.
|
|
|
|
|
|
|
|
See commit messages for more credits.
|
|
|
|
|
|
|
|
Cheers,
|
|
|
|
Salvatore
|