1 Redis 2.6 release notes
 
   2 =======================
 
   4 ** IMPORTANT ** Check the 'Migrating from 2.4 to 2.6' section at the end of
 
   5                 this file for information about what changed between 2.4 and
 
   6                 2.6 and how this may affect your application.
 
   8 --------------------------------------------------------------------------------
 
   9 Upgrade urgency levels:
 
  11 LOW:      No need to upgrade unless there are new features you want to use.
 
  12 MODERATE: Program an upgrade of the server, but it's not urgent.
 
  13 HIGH:     There is a critical bug that may affect a subset of users. Upgrade!
 
  14 CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
 
  15 --------------------------------------------------------------------------------
 
  17 ---[ Redis 2.5.13 (2.6 Release Candidate 7) ]
 
  21 * [BUGFIX]   Theoretical bug in ziplist fixed.
 
  22 * [BUGFIX]   Better out of memory handling (Log produced in log file).
 
  23 * [BUGFIX]   Incrementally flush RDB file on slave side while performing the
 
  24              first synchronization with the master. This makes Redis less
 
  25              blocking in environments where disk I/O is slow.
 
  26 * [BUGFIX]   Don't crash with Lua's redis.call() without arguments.
 
  27 * [BUGFIX]   Don't crash after a big number of Lua calls on 32 bit systems
 
  28              because of a failed assertion.
 
  29 * [BUGFIX]   Fix SORT behaviour when called from scripting.
 
  30 * [BUGFIX]   Adjust slave PING period accordingly to REDIS_HZ define.
 
  31 * [BUGFIX]   BITCOUNT: fix crash on overflowing arguments.
 
  32 * [BUGFIX]   Return an error when SELECT argument is not an integer.
 
  33 * [BUGFIX]   Blocking operations on lists were completely reimplemented for
 
  34              correctness. Now blocking list ops and pushes originated from
 
  35              Lua scripts will play well together and will be replicated
 
  36              and transmitted to the AOF correctly.
 
  37 * [IMPROVED] Send async PING before starting replication to avoid blocking if
 
  38              master allows us to connect but it is actually not able to reply.
 
  39 * [IMPROVED] Support slave-priority for Redis Sentinel.
 
  40 * [IMPROVED] Hiredis library updated.
 
  42 ---[ Redis 2.5.12 (2.6 Release Candidate 6) ]
 
  44 UPGRADE URGENCY: MODERATE.
 
  46 * [BUGFIX]   Fixed a timing attack on AUTH (Issue #560).
 
  47 * [BUGFIX]   Don't assume that "char" is signed.
 
  48 * [BUGFIX]   Check that we have connection before enabling pipe mode.
 
  49 * [BUGFIX]   Use the optimized version of the function to convert a double to
 
  50              its string representation. Compilation was disabled because of
 
  51              a typo in the #if statement.
 
  52 * [IMPROVED} REPLCONF internal command introduced, now INFO shows slaves with
 
  53              correct port numbers. This makes 2.5.12 Redis Sentinel compatible.
 
  54 * [IMPROVED] Truncate short write from the AOF for a cleaner restart. On short
 
  55              writes (for instance out of space) Redis will now try to remove
 
  56              the half-written data so that the next restart will work without
 
  57              the need for the "redis-check-aof" utility.
 
  58 * [IMPROVED] New in INFO: aof_last_bgrewrite_status
 
  59 * [IMPROVED] Allow Pub/Sub in contexts where other commands are blocked.
 
  60 * [BUGFIX]   mark fd as writable when EPOLLERR or EPOLLHUP is returned by
 
  63 ---[ Redis 2.5.11 (2.6 Release Candidate 5) ]
 
  65 UPGRADE URGENCY: HIGH.
 
  67 * [BUGFIX]   Fixed Hash corruption when loading an RDB file generated by
 
  68              previous versions of Redis that encoded hashes using
 
  69              a different ziplist encoding format for small integers.
 
  70              All the fileds that are integers in the range 0-255 may not
 
  71              be recognized, or duplicated un updates, causing a crash
 
  72              when the ziplist is converted to a real hash. (Issue #547).
 
  73 * [BUGFIX]   Fixed the count of memory used by output buffers in the
 
  74              setDeferredMultiBulkLength() function.
 
  76 ---[ Redis 2.5.10 (2.6 Release Candidate 4) ]
 
  78 UPGRADE URGENCY: HIGH.
 
  80 * [BUGFIX]   Allow PREFIX to be overwritten on "make install".
 
  81 * [BUGFIX]   Run the test with just one client if the computer is slow.
 
  82 * [BUGFIX]   Event port support in our event driven libray.
 
  83 * [BUGFIX]   Jemalloc updated to 3.0.0. This fixes a possibly AOF rewrite issue.
 
  84              See https://github.com/antirez/redis/issues/504 for info.
 
  85 * [BUGFIX]   Fixed issue #516: ZINTERSTORE / ZUNIONSTORE with mixed sets/zsets.
 
  86 * [BUGFIX]   Set fd to writable when poll(2) detects POLLERR or POLLHUP event.
 
  87 * [BUGFIX]   Fixed RESTORE hash failure (Issue #532).
 
  88 * [IMPROVED] Allow an AOF rewrite buffer > 2GB (Related to issue #504).
 
  89 * [IMPROVED] Server cron function frequency is now configurable (REDIS_HZ).
 
  90 * [IMPROVED] Better, less blocking expired keys collection algorithm.
 
  91 * [FEATURE]  New commands: BITOP and BITCOUNT.
 
  92 * [FEATURE]  redis-cli --pipe for mass import.
 
  94 What's new in Redis 2.5.9 (aka 2.6 Release Candidate 3)
 
  95 =======================================================
 
  97 UPGRADE URGENCY: critical, upgrade ASAP.
 
  99 * [BUGFIX] Fix for issue #500 (https://github.com/antirez/redis/pull/500).
 
 100            Redis 2.6-RC1 and RC2 may corrupt ziplist-encoded sorted sets
 
 101            produced by Redis 2.4.x.
 
 102 * [BUGFIX] Fixed several bugs in init.d script.
 
 103 * [BUGFIX] syncio.c functions modified for speed and correctness. On osx
 
 104            (and possibly other BSD-based systems) the slave would block on
 
 105            replication to send the SYNC command when the master was not
 
 106            available. This is fixed now, but was not affecting Linux installs.
 
 107 * Now when slave-serve-stale-data is set to yes and the master is down, instead
 
 108   of reporting a generic error Redis replies with -MASTERDOWN.
 
 110 What's new in Redis 2.5.8 (aka 2.6 Release Candidate 2)
 
 111 =======================================================
 
 113 UPGRADE URGENCY: high for all the users of the KEYS command, otherwise low.
 
 115 * [BUGFIX] Fix for KEYS command: if the DB contains keys with expires the KEYS
 
 116            command may return the wrong output, having duplicated or missing
 
 117            keys. See issue #487 and #488 on github for details.
 
 119 What's new in Redis 2.5.7 (aka 2.6 Release Candidate 1)
 
 120 =======================================================
 
 122 UPGRADE URGENCY: upgrade not recommended because this is an RC release.
 
 124 * This is the first release candidate for Redis 2.6. We are not aware of
 
 125   bugs, but part of this code is young and was never tested in production
 
 126   environments, so handle with care.
 
 128 An overview of new features and changes in Redis 2.6.x
 
 129 ======================================================
 
 131 * Server side Lua scripting, see http://redis.io/commands/eval
 
 132 * Virtual Memory removed (was deprecated in 2.4)
 
 133 * Hardcoded limits about max number of clients removed.
 
 134 * AOF low level semantics is generally more sane, and especially when used
 
 136 * Milliseconds resolution expires, also added new commands with milliseconds
 
 137   precision (PEXPIRE, PTTL, ...).
 
 138 * Better memory usage for "small" lists, ziplists and hashes when fields or
 
 139   values contain small integers.
 
 141 * New bit opeations: BITCOUNT and BITOP commands.
 
 142 * Clients max output buffer soft and hard limits. You can specifiy different
 
 143   limits for different classes of clients (normal,pubsub,slave).
 
 144 * More incremental (less blocking) expired keys collection algorithm, in
 
 145   practical terms this means that Redis is more responsive when a very
 
 146   big number of keys expire about at the same time.
 
 147 * AOF is now able to rewrite aggregate data types using variadic commands,
 
 148   often producing an AOF that is faster to save, load, and is smaller in size.
 
 149 * Every redis.conf directive is now accepted as a command line option for the
 
 150   redis-server binary, with the same name and number of arguments.
 
 151 * Hash table seed randomization for protection against collisions attacks.
 
 152 * Performances improved when writing large objects to Redis.
 
 153 * Integrated memory test, see redis-server --test-memory.
 
 154 * INCRBYFLOAT and HINCRBYFLOAT commands.
 
 155 * New DUMP, RESTORE, MIGRATE commands (back ported from Redis Cluster to 2.6).
 
 156 * CRC64 checksump in RDB files.
 
 157 * Better MONITOR output and behavior (now commands are logged before execution).
 
 158 * "Software Watchdog" feature to debug latency issues.
 
 159 * Significant parts of the core refactored or rewritten. New internal APIs
 
 160   and core changes allowed to develop Redis Cluster on top of the new code,
 
 161   however for 2.6 all the cluster code was removed, and will be released with
 
 162   Redis 3.0 when it is more complete and stable.
 
 163 * Redis ASCII art logo added at startup.
 
 164 * Crash report on memory violation or failed asserts improved significantly
 
 165   to make debugging of hard to catch bugs simpler.
 
 166 * redis-benchmark improvements: ability to run selected tests,
 
 167   CSV output, faster, better help.
 
 168 * redis-cli improvements: --eval for comfortable development of Lua scripts.
 
 169 * SHUTDOWN now supports two optional arguments: "SAVE" and "NOSAVE".
 
 170 * INFO output split into sections, the command is now able to just show 
 
 172 * New statistics about how many time a command was called, and how much
 
 173   execution time it used (INFO commandstats).
 
 174 * More predictable SORT behavior in edge cases.
 
 175 * Better support for big endian and *BSD systems.
 
 176 * Build system improved.
 
 178 Migrating from 2.4 to 2.6
 
 179 =========================
 
 181 Redis 2.4 is mostly a strict subset of 2.6. However there are a few things
 
 182 that you should be aware of:
 
 184 * You can't use .rdb and AOF files generated with 2.6 into a 2.4 instance.
 
 185 * 2.6 slaves can be attached to 2.4 masters, but not the contrary, and only
 
 186   for the time needed to perform the version upgrade.
 
 188 There are also a few API differences, that are unlikely to cause problems,
 
 189 but it is better to keep them in mind:
 
 191 * SORT now will refuse to sort in numerical mode elements that can't be parsed
 
 193 * EXPIREs now all have millisecond resolution (but this is very unlikely to
 
 194   break code that was not conceived exploting the previous resolution error
 
 196 * INFO output is a bit different now, and contains empty lines and comments
 
 197   starting with '#'. All the major clients should be already fixed to work
 
 198   with the new INFO format.
 
 199 * Slaves are only read-only by default (but you can change this easily
 
 200   setting the "slave-read-only" configuration option to "no" editing your
 
 201   redis.conf or using CONFIG SET.
 
 203 The following INFO fields were renamed for consistency:
 
 205      changes_since_last_save -> rdb_changes_since_last_save
 
 206      bgsave_in_progress -> rdb_bgsave_in_progress
 
 207      last_save_time -> rdb_last_save_time
 
 208      last_bgsave_status -> rdb_last_bgsave_status
 
 209      bgrewriteaof_in_progress -> aof_rewrite_in_progress
 
 210      bgrewriteaof_scheduled -> aof_rewrite_scheduled
 
 212 The following redis.conf and CONFIG GET / SET parameters changed:
 
 214     * hash-max-zipmap-entries, now replaced by hash-max-ziplist-entries
 
 215     * hash-max-zipmap-value, now replaced by hash-max-ziplist-value
 
 216     * glueoutputbuf option was now completely removed (was deprecated)
 
 218 --------------------------------------------------------------------------------
 
 220 Credits: Where not specified the implementation and design are done by
 
 221 Salvatore Sanfilippo and Pieter Noordhuis. Thanks to VMware for making all
 
 222 this possible. Also many thanks to all the other contributors and the amazing
 
 225 See commit messages for more credits.