123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612 |
- Redis 2.8 release notes
- =======================
- ** IMPORTANT ** Check the 'Migrating from 2.6 to 2.8' section at the end of
- this file for information about what changed between 2.6 and
- 2.8 and how this may affect your application.
- --------------------------------------------------------------------------------
- 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.
- --------------------------------------------------------------------------------
- --[ Redis 2.8.19 ] Release date: 16 Dec 2014
- # UPGRADE URGENCY: LOW for both Redis and Sentinel. This release mostly
- fixes small issues.
- 02d465c Don't log admin commands in MONITOR. (antirez)
- 4d8f426 List of commands flagged as admin commands modified. (antirez)
- e47e460 Lua cmsgpack lib updated to latest version. (antirez)
- 5509c14 Add symlink to redis-sentinel during make install (Rhommel Lamas)
- 7de1ef7 SORT: Don't sort Set elements if not needed. (antirez)
- e945a54 Fix zero-ordering SORT when called against lists (Matt Stancliff)
- d81c383 Update redis_init_script.tpl (Ben Dowling)
- dba57ea FIXED redis-benchmark's idle mode.With idle mode shouldn't create write event (zhanghailei)
- 888ea17 zipmap.c: update comments above (Sun He)
- 86ebc13 replaced // comments #2150 (Deepak Verma)
- 3d73f08 redis-benchmark AUTH command to be discarded after the first send #2150 (azure provisioned user)
- 76d53a6 sds.c: Correct two spelling mistakes in comments (Sun He)
- 4848cf9 sds.c/sdscatvprintf: set va_end to finish va_list cpy (Sun He)
- d2f584f sds.c: Correct some comments (Sun He)
- 2ed3f09 Update whatisdoing.sh (Serghei Iakovlev)
- 77b997d Include stropts only if __sun is defined. (antirez)
- d409371 Fix implicit declaration of ioctl on Solaris (Jan-Erik Rediger)
- 23b96c0 Silence _BSD_SOURCE warnings in glibc 2.20 and forward (Johan Bergström)
- a47a042 Mark whatisdoing.sh as deprecated in top-comment. (antirez)
- b5737d2 getting pid fixes (Serghei Iakovlev)
- a598e08 sparkline.c: AddSample skip Empty label (Sun He)
- 7d480ab sparkline.c: mov label-ini into the AddSample Function (Sun He)
- 2f3c860 Only ignore sigpipe in interactive mode (Jan-Erik Rediger)
- 0c211a1 Simplify lua_cmsgpack macro and fix build on old Linux distros. (antirez)
- --[ Redis 2.8.18 ] Release date: 4 Dec 2014
- # UPGRADE URGENCY: LOW for both Redis and Sentinel. This release mostly
- adds new features to Redis, and contains non critical
- fixes.
- * [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
- Sanfilippo)
- * [NEW] Check that tcp-backlog is matched by /proc/sys/net/core/somaxconn, and
- warn about it if not. (Salvatore Sanfilippo)
- --[ Redis 2.8.17 ] Release date: 19 Sep 2014
- # UPGRADE URGENCY: HIGH for Redis Sentinel.
- LOW for Redis Server (unmodified compared to 2.8.16).
- * [FIX] Resolved a memory leak in the hiredis library causing a memory leak
- in Redis Sentinel when a monitored instance or another Sentinel is
- unavailable. Every reconnection attempt will leak a small amount of
- memory, but in the long run the process can reach a considerable size.
- --[ Redis 2.8.16 ] Release date: 16 Sep 2014
- # UPGRADE URGENCY: HIGH for Redis if you are using 2.8.15 + AOF.
- LOW for Sentinel.
- * [FIX] The ability to load truncated AOF files introduced with Redis 2.8.15
- contains a bug fixed in this release: after loading the file was not
- truncated to the last valid command, so the new commands are appended
- after a non well formed command. This means that:
- 1) The first AOF rewrite triggered by the server will automatically
- fix the problem.
- 2) However, if the server is restarted before the rewrite, Redis may
- not be able to load the file and you need to manually fix it.
- In order to fix a corrupted file you should start the redis-check-aof
- utility WITHOUT the --fix option, just to check the offset where the
- corruption is found. Around the offset reported by the check utility
- you'll find, inside your AOF file, a command which is not complete
- according to the Redis protocol. Just remove this incomplete command
- leafing the file unaltered before and after the offending command,
- and restart the server.
- IMPORTANT #1: Redis 2.8.15 is the only stable version of Redis with
- this bug so probably no actual real-world problem happened since the
- problem is automatically fixed at the first automatic AOF rewrite.
- IMPORTANT #2: Before upgrading to Redis 2.8.16, if you are using Redis
- 2.8.15 with AOF enabled, make sure to trigger a manual AOF rewrite
- using the BGREWRITEAOF command.
- * [FIX] SAVE is no longer propagated to AOF / slaves.
- --[ Redis 2.8.15 ] Release date: 12 Sep 2014
- # UPGRADE URGENCY: LOW for Redis, HIGH for Sentinel.
- * [FIX] Sentinel critical bug fixed: the absolute majority was computed in a
- wrong way because of a programming error. Now the implementation does
- what the specification says and the majority to authorize a failover
- (that should not be confused with the ODOWN quorum) is the majority of
- *all* the Sentinels ever seen for a given master, regardless of their
- current state.
- * [FIX] GETRANGE test no longer fails for 32 bit builds (Matt Stancliff).
- * [FIX] Limit SCAN latency when the hash table is in an odd state (very few
- populted buckets because rehashing is in progress). (Xiaost and
- Salvatore Sanfilippo)
- * [NEW] Redis is now able to load truncated AOF files without requiring a
- redis-check-aof utility run. The default now is to load truncated
- (but apparently not corrupted) AOFs, you can change this in redis.conf.
- (Salvatore Sanfilippo).
- * [NEW] Sentinel: ability to announce itself with an arbitrary IP/port to work
- in the context of natted networks. However this is probably still
- not enough since there is no equivalent mechanism for slaves listed
- in the master INFO output. (Dara Kong and Salvatore Sanfilippo)
- --[ Redis 2.8.14 ] Release date: 1 Sep 2014
- # UPGRADE URGENCY: HIGH for Lua scripting users, the server could crash because
- of a bug introduced in Redis 2.8.10, otherwise LOW.
- LOW for Redis Sentinel.
- * [FIX] Don't prevent use of shared integers if maxmemory policy is non-LRU.
- (Salvatore Sanfilippo)
- * [FIX] Fail SYNC if background save child aborted due to a signal.
- (Yossi Gottlieb)
- * [FIX] Different small redis-cli fixes. (Dov Murik, Charsyam, cubicdaiya,
- Kashif Rasul, Jan-Erik Rediger, Matt Stancliff)
- * [FIX] AIX compilation fixes. (Siah Lyimo)
- * [FIX] A number of other smaller issues.
- * [FIX] Improved SIGINT handling (Matt Stancliff, Salvatore Sanfilippo)
- * [FIX] Use unsigned types in SDS header to raise limit to 4GB.
- (Matt Stancliff, Salvatore Sanfilippo)
- * [FIX] Handle signed/unsigned comparisons with more care around the code.
- (Salvatore Sanfilippo)
- * [FIX] Colorized test output fixed to don't change the background color.
- (Mariano Pérez Rodríguez)
- * [FIX] More Sentinel IPv6 fixes. (Eiichi Sato)
- * [FIX] Deny CLIENT command in scripts. (Matt Stancliff)
- * [FIX] Allow datasets with more than 2 billion of keys, initial work.
- * [FIX] Fix a Lua scripting crash by storing the length of the static
- argv when first allocated. (Paddy Byers)
- * [NEW] Pub/Sub PING. (Salvatore Sanfilippo)
- * [NEW] Much faster ZUNIONSTORE. (Kyle Hubert, Salvatore Sanfilippo)
- * [NEW] Faster ll2string() implementation. (Salvatore Sanfilippo)
- * [NEW] **WARNING, minor API change**: PUBSUB NUMSUB: return type modified
- to integer. (Matt Stancliff)
- * [NEW] redis-benchmark support for AUTH. (CharSyam)
- --[ Redis 2.8.13 ] Release date: 14 Jul 2014
- # UPGRADE URGENCY: LOW for Redis and Sentinel, this is a features enhancement
- release mostly. Since this release introduces the latency
- monitoring feature, Redis 2.8 users experiencing latency
- issues are strongly encouraged to upgrade.
- * [FIX] CLIENT KILL minor backward compatibility fixes. (Salvatore Sanfilippo)
- * [FIX] Enable HAVE_ATOMIC for PowerPC. (Matt Stancliff)
- * [FIX] More robust PSYNC and AOF rewrites tests. (Salvatore Sanfilippo)
- * [FIX] Solaris build fixed. (Matt Stancliff, Salvatore Sanfilippo)
- * [NEW] The new latency monitoring feature, as documented at
- http://redis.io/topics/latency-monitor (Salvatore Sanfilippo)
- * [NEW] The COMMAND command, exposing the Redis command table
- as an API. (Matt Stancliff)
- * [NEW] Update used memory with C11 __atomic. (Matt Stancliff)
- --[ Redis 2.8.12 ] Release date: 23 Jun 2014
- # UPGRADE URGENCY: HIGH for Redis, CRITICAL for Sentinel.
- # WARNING: This release contains a non backward compatible semantical change
- to Lua script that should affect an almost zero number of users.
- * [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. (Matt Stancliff)
- * [FIX] Sentinel: bind source address for outcoming connections. (Matt
- Stancliff).
- * [FIX] Less timing sensitive Sentinel tests. (Salvatore Sanfilippo).
- * [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. (Salvatore
- Sanfilippo)
- * [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). (Salvatore Sanfilippo)
- * [NEW] Hiredis update to latest version. (Matt Stancliff)
- --[ 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.
- --[ Redis 2.8.9 ] Release date: 22 Apr 2014
- # 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.
- --[ Redis 2.8.8 ] Release date: 25 Mar 2014
- # 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 command.
- * [FIX] Fixed data loss when SHUTDOWN was used with a disk full condition.
- * [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 instances.
- * [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 improved.
- * [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 concerns.
- * [NEW] Majory speedup for the INFO command (it is now 6 times faster).
- * [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 linenoise lib.
- Thanks to Matt Stancliff and Jan-Erik Rediger for the work done in the context
- of this release.
- --[ 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.
- --[ 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.
- --[ 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.
- --[ 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.
- --[ 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.
- --[ 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.
- --[ 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.
- --[ Redis 2.8 Release Candidate 6 (2.7.106) ] Release date: 6 Nov 2013
- 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.
- --[ 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.
- --[ 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.
- --[ 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.
- --[ 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".
- --[ 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
- of the times a full resynchronization with the RDB creation in the master
- side is not needed when the master-slave link is disconnected for a short
- amount of time.
- * [NEW] Experimental IPv6 support.
- * [NEW] Slaves explicitly ping masters now, a master is able to detect a timed out
- slave independently.
- * [NEW] Masters can stop accepting writes if not enough slaves with a given
- maximum latency are connected.
- * [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.
- * [NEW] SDIFF performance improved.
- * [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:
- * The TTL and PTTL commands now return -2 if the key does not exist and
- -1 if it exists but has no associated expire. Redis 2.6 and previous
- versions used to return -1 for both the conditions.
- * 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 to slaves.
- 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
- 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.
- --------------------------------------------------------------------------------
- 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
|