Redis 2.2 release notes Migrating from 2.0 to 2.2 ========================= Redis 2.0 is mostly a strict subset of 2.2. Some return value changed in edge cases, basicaly it is very unlikely that you will experience any problem upgrading your 2.0 instances to 2.2, as 2.2 can work as a drop in replacement for 2.0. --------- CHANGELOG --------- What's new in Redis 2.2.15 ========================== * [BUGFIX] FLUSHALL was not replicated nor written into the Append Only File. * [BUGFIX] FLUSHALL now only performs a sync SAVE if there is at least one save point configured. What's new in Redis 2.2.14 ========================== * [BUGFIX] Fixed a rare but possible AOF race condition that could result into duplicated commands inside the AOF. * [BUGFIX] Don't replicate SAVE. * LRANGE optimization may drastically improve performances when querying the final part of a long list. * redis-cli now implements a --latency mode to monitory Redis delay. What's new in Redis 2.2.13 ========================== * [BUGFIX] Fixed issue 593 (BRPOPLPUSH related crash). * [BUGFIX] Fixed an issue with the networking layer that may prevent Redis from sending the whole reply back to client under extreme conditions. What's new in Redis 2.2.12 ========================== * The Slowlog feature was backported to Redis 2.2. * A number of fixes related blocking operations on lists when mixed with AOF and Replication. * Fixed bad interactions between EXPIRE, EXPIREAT, and in general volatile keys when AOF is enabled. More details in the Redis Google Group here: http://groups.google.com/group/redis-db/browse_frm/thread/5a931fefb88b16d5?tvc=1 * no more allocation stats info in INFO. * colorized make for 2.2 as well. * Fixed a problem with AOF when it is stopped via CONFIG SET appendonly no. * Warn the user enabling VM that VM is deprecated and discouraged. * prepareForShutdown() fixed for correctness. * Close the listening sockets on exit for faster restarts. What's new in Redis 2.2.11 ========================== * Solved a never reported but possibly critical bug in the AOF and RDB persistence, introduced with the new version of the iterator: In very rare circumstances the AOF (after rerwite) or the rdb file may contain the same key more than one time. What's new in Redis 2.2.10 ========================== * Fix for issue 566. It was possible for SETNX to behave in abnormal ways. * Work with make v3.80 * redis-cli updated to the same version as the 2.4 branch. Now the reconnection handling is better. You can prefix commands with a number to execute the command the specified number of times. When using -r in non interactive mode it is possible to set a delay between commands. * Better init script. What's new in Redis 2.2.9 ========================= Redis 2.2.9 is an important bugfix release: * A Slave used to rewrite the AOF log after a sync with the master, but the rewrite was performed at the wrong time, causing inconsistencies in the AOF file generated. * [LR]LPUSH replication in presence of BRPOPLPUSH was broken. Fixed. * Memory leak in BRPOPLPUSH fixed. * Pub/Sub bug resulting in random crashes fixed. What's new in Redis 2.2.8 ========================= * A new form of dict.c (hash table implementation) iterator that performs less copy-on-write of pages, introduced in Redis 2.2.7, caused ZINTERSTORE, ZUNIONSTORE, SINTER, SINTERSTORE commands to behave in the wrong way. This bug is now fixed. * Print version info before running the test with 'make test'. This is mainly useful for the Continuous Integration system we run. * Fix for DEBUG DIGEST, key may expire on lookup, producing the wrong result. * Replication with expire test modified to produce no or less false failures. * Fixed Z*STORE when dealing with intsets, regression test added. What's new in Redis 2.2.7 ========================= * Fixed bug #543-2 (the issue was reopened with a completely different report) that caused Redis to randomly crash on list push performed against lists with other clients blocked with BLPOP (or variants). What's new in Redis 2.2.6 ========================= * Fixed bug #543. If you saw Redis instances crashing on List operations (only happening with a non-default max entry size ziplist setting in redis.conf) it was almost certainly this problem. * Fixed a bug with replication where SLAVEOF NO ONE caused a slave to close the connection with all its slaves. What's new in Redis 2.2.5 ========================= * Fixed a crash occurring when loading an AOF containing the SPOP command. What's new in Redis 2.2.4 ========================= * Return value of OBJECT DEBUG against sorted sets fixed, now is "skiplist". What's new in Redis 2.2.3 ========================= * Fixed issue #503. MONITOR + QUIT (and other combinations) could crash the server. * OBJECT command implemented. See http://redis.io/commands/object * Fixed a problem in redis-cli related to escapes in the form "\x..". * Fixed a minor memory leak in redis-cli * Saved RDB on SIGTERM on archs where it was not working properly. What's new in Redis 2.2.2 ========================= Redis 2.2.2 is a bugfix release. Changelog: * AOF file descriptor leak after the first rewrite fixed. * Return value of GETRANGE / SUBSTR is now an empty string if the interval specified is not valid, or the key does not exist. Was a null bulk reply before, but this is against the Redis way. What's new in Redis 2.2.1 ========================= Redis 2.2.1 is a bugfix release. Changelog: * Fixed an SPOP crash. When using SPOP in a MULTI/EXEC block there was a problem introduced in the latest release when fixing an SPOP replication/AOF related bug. What's new in Redis 2.2.0 final =============================== Redis 2.2.0 final is both a bug fix and minor enhancement release: * SPOP is now replicated correctly in AOF and across slaves. * CONFIG SET/GET for all the special encoding parameters of sets, lists, hashes. * Now BRPOPLPUSH will reply with single null bulk on timeout. * Specifying port 0 in redis.conf will tell Redis to don't listen on TCP socket. * Propagate key eviction to slaves and AOF, similarly to expires. What's new in Redis 2.1.10 (2.2 Release Candidate 4) ==================================================== Redis 2.2 RC4 is a bug fix and minor enhancement release: * Fixed timeout error in replication where master took a big time to BGSAVE. * Introduced explicit PING between master and slave, to reliably detect when the link is down, even if the socket remains apparently connected. * Fixed compilation on FreeBSD. * Removed a small portability issue in redis-benchmark. What's new in Redis 2.1.10 (2.2 Release Candidate 3) ==================================================== Redis 2.2 RC3 is a bug fix and minor enhancements release: * Solaris fixes * Fixes and improvements for redis-benchmark * New INFO field with memory allocation details * New INFO fields with info about clients max input/output buffer * Replication: KEYS fixed in slaves * Different default thresholds for Hash type memory saving encodings What's new in Redis 2.1.10 (2.2 Release Candidate 2) ==================================================== Redis 2.2 RC2 is exactly like RC1 with the following minor changes: * Added evicted keys counter separated from expired keys. * Overflow detection in INCR family functions. Enjoy, Salvatore What's new in Redis 2.1.9 (2.2 Release Candidate 1) =================================================== This is the first Release Candidate of Redis 2.2, in our experience the server is very stable, but in the latest weeks we rewrote part of the internals in order to use a lot less memory while the saving child process is performing a BGREWRITEAOF or a BGSAVE, so handle with care for a couple of weeks. Oh, and I've some very good news: the majority of apps can work if you simply replace 2.2 in your old 2.0 environment. I can't think of any breakage. WHAT'S NEW IN REDIS 2.2 compared to the 2.0 version? ==================================================== * Specially encoded data types, small lists and sets can now use up to an order of magnitude less memory. * VM partial rewrite for code cleaness and memory usage. * Change to the implementation of the top level dictionary for better memory efficienty. * redis-cli is hugely improved: tab completion, inline help (Thanks to TJ Holowaychuk), raw output, rewritten using the new hiredis C library. * Networking internals rewritten for efficiency. You can expect LRANGE and similar commands to be at least 10 times faster. * Most read only commands are now copy-on-write friendly, this means that Redis will use little memory when a saving child is active and the parent process is mostly stressed by read queries. * Non blocking replication even from the point of view of the slave, with configurable behavior about what to do when the link is disconnected. You can select if serving old data or replying with an error. * Check-and-set (CAS) transactions with the new WATCH command. * Now write operations work against keys with an EXPIRE set! Imagine the possibilities. * New maxmemory eviction policies. It is possible to select among LRU, farest TTL expire, and other algorithms, and if when the memory limit is reached only keys with an expire set or all the keys should be expired. * SETBIT / GETBIT / SETRANGE / GETRANGE / STRLEN. Now your strings are your arrays! * Syslog support (Thanks to Jonah H. Harris) * Unix domain socket support. * New List related functions LINSERT, LPUSHX, RPUSHX (Thanks to Robey Pointer) * BRPOPLPUSH (Thanks to Michel Martens and Damian Janowski) * Much more interesting informations in the INFO output. * Sorted sets are now less memory hungry. * Non blocking loading of .rdb / AOF file on startup, with progress information in the INFO output. * Now Redis has a clean, powerful, supported C library: hiredis. * Code layout completely new, the 2.0.x huge redis.c file is now splitted in many parts. * Redis-benchmark rewritten to be faster and in order to use hiredis as well. * Ability to rename or disable commands from the config file. * Endless other CPU optimizations and bugs fixed. Credits: Where not specified the implementation and design are done by Salvatore Sanfilippo and Pieter Noordhuis. Thanks to VMware for making all this possible. Also many thanks to all the other contributors and the amazing community we have. Cheers, Salvatore