Redis 2.4 release notes Migrating from 2.2 to 2.4 ========================= Redis 2.2 is mostly a strict subset of 2.4. The only thing you should be aware is that you can't use .rdb and AOF files generated with 2.4 into a 2.2 instance. 2.4 slaves can be attached to 2.2 masters, but not the contrary, and only for the time needed to perform the version upgrade. From the point of view of the API Redis 2.4 only adds new commands (other commands now accepts a variable number of arguments) so you don't need to modify your program in order to use Redis 2.4. --------- CHANGELOG --------- What's new in Redis 2.4.18 ========================== UPGRADE URGENCY: critical if you experienced one more more crashes. * [BUGFIX] Jemalloc updated to 3.2.0. What's new in Redis 2.4.17 ========================== * 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. What's new in Redis 2.4.16 ========================== * INFO command now shows slaves with the correct port number, assuming you use 2.4.16 or greater as slave as well. This makes Redis 2.4.16 compatible with Redis Sentinel. This fix required the introduction of a new internal command called REPLCONF, see commit b998ebe for more information. What's new in Redis 2.4.15 ========================== 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. What's new in Redis 2.4.14 ========================== 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. 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. What's new in Redis 2.4.11 ========================== 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. What's new in Redis 2.4.10 ========================== 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. What's new in Redis 2.4.9 ========================= 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 . * [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). What's new in Redis 2.4.8 ========================= 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). What's new in Redis 2.4.7 ========================= 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). What's new in Redis 2.4.6 ========================= * [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. What's new in Redis 2.4.5 ========================= * [BUGFIX] Fixed a ZUNIONSTORE/ZINTERSTORE bug that can cause a NaN to be inserted as a sorted set element score. This happens when one of the elements has +inf/-inf score and the weight used is 0. * [BUGFIX] Fixed memory leak in CLIENT INFO. * [BUGFIX] Fixed a non critical SORT bug (Issue 224). * [BUGFIX] Fixed a replication bug: now the timeout configuration is respected during the connection with the master. * --quiet option implemented in the Redis test. What's new in Redis 2.4.4 ========================= * [BUGFIX] jemalloc upgraded to version 2.2.5, previous versions had a potentially serious issue when allocating big memory areas, something that Redis actually does. However we never received bug reports that appear to be caused by jemalloc. * [BUGFIX] DISCARD now clears DIRTY_CAS flag in the client. Now the next transaction will not fail if the previous transaction used WATCH and the key was touched. * CLIENT LIST output modified to include the last command executed by clients. * Better bug report on crash. * Protocol errors are now logged for loglevel >= verbose. * Two new INFO fields related to AOF, that can be useful when investigating Redis issues. What's new in Redis 2.4.3 ========================= * redis-cli now supports 'single quotes' style strings. * It is possible to disable password auth with CONFIG SET. * Some section of redis.conf better documented. * Default timeout for client connections now is 0 (no timeout). * I/O buffer length modified for better performances with big payloads. * Fixed crash on SPARC due to improper alighment due to bad assumptions about data types size. * CLIENT LIST output improved, code refactored. * [BUGFIX] Max log message length set to 4k to avoid truncation in INFO output written in the log file after a crash. * [BUGFIX] Close client connection when the query buffer reaches 1GB and log informaiton about the offending client, instead of crashing the instance when the query buffer reaches 2GB (for sds.c string overflow). This is related to issue #141 (github issues) and should fix the effect of this rare bug related to replication, but the cause is still not perfectly clear. What's new in Redis 2.4.2 ========================= * [BUGFIX] Unix socket creation mask config directive fixed. * [BUGFIX] Fixed a bug that forced Redis to continously rewrite the AOF file when a manual BGREWRITEAOF was issued during a BGSAVE was still in progress. * [BUGFIX] Fixed a server crash resulting from bad handling of SLAVEOF NO ONE. * [BUGFIX] Fixed a memory leak in redis-cli. * Debian/Ubuntu Redis system-wide installation script added under /utils. What's new in Redis 2.4.1 ========================= * [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.4.0 ========================= * [BUGFIX] redis-cli segfault with single numerical argument fixed. * [BUGFIX] OpenBSD compilation problem fixed. * [BUGFIX] More robust Redis test, with better random port selection. * [BUGFIX] Fix for bug #128 about the RENAME command. * [BUGFIX] Fixed Issue #131. stime/utime reported in INFO was inverted. * [BUGFIX] Unlink Unix socket file on shutdown. * [BUGFIX] AUTH now returns error if no password is set on the server. * [BUGFIX] Exit with Fatal error at startup on RDB loading errors. * redis-check-dump: RDB version 2 now supported. * More informative error when DEBUG RELOAD fails. * Added a config directive for a Unix socket mask. * CONFIG SET/GET for loglevel. What's new in Redis 2.3.11 (2.4 Release Candidate 8) ==================================================== * [BUGFIX] Fixed a rare but possible AOF race condition that could result into duplicated commands inside the AOF. * [BUGFIX] Fixed issue 620, don't segfault on corrupted (by hand) AOF. * [BUGFIX] Fixed compilation on Mac/PPC. * [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. * Hash type settings removed from INFO (same info is available via config GET) * Include port number on error when can't bind. * AOF fsync is now performed in background when fsync policy is 'everysec'. * AOF performances improved moving in background a possibly slow close(2) call. * AOF protocol synthesis speedup. What's new in Redis 2.3.10 (2.4 Release Candidate 7) ==================================================== * [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.3.9 (2.4 Release Candidate 6) =================================================== * [BUGFIX] Fixed a bug with the automatic AOF rewrite causing continuous rewrites for AOF files bigger than 4 GB. * New maxmemory tests. What's new in Redis 2.3.8 (2.4 Release Candidate 5) =================================================== Compared to Redis 2.3.7 (RC4) there are the following changes: * [BUGFIX] HDEL: Abort deleting fields when hash is removed. * [BUGFIX] Fix adding bulk reply when getcwd fails. WHAT'S NEW IN REDIS 2.4 compared to the 2.2 version? ==================================================== * Specially encoded sorted sets, now small sorted sets will use little memory. * Native persistence of specially encoded data types (ziplists, zipmaps, intsets). Many data sets will be saved and loaded an order of magnitude faster. * Variadic versions of commands: SADD, HDEL, SREM, ZREM, ZADD, L/RPUSH. * Jemalloc support (enabled by default for Linux build) in order to avoid fragmentation issues. * Reduced memory usage while saving. * More info fields (peak memory, fork time, ...) * OBJECT command for objects introspection. * CLIENT command for clients introspection. * Non blocking slave -> master connection. * Better redis-cli connection handling. New redis-cli features. * Better redis-benchmark, now able to benchmark user provided commands. * Colorized Make. * VM deprecated. Still supported but with a big warning... don't use it. * Many speed optimizations and bug fixes. 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