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