xref: /redis-3.2.3/00-RELEASENOTES (revision 3955fdee)
1Redis 3.2 release notes
2=======================
3
4--------------------------------------------------------------------------------
5Upgrade urgency levels:
6
7LOW:      No need to upgrade unless there are new features you want to use.
8MODERATE: Program an upgrade of the server, but it's not urgent.
9HIGH:     There is a critical bug that may affect a subset of users. Upgrade!
10CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
11--------------------------------------------------------------------------------
12
13--[ Redis 3.2.0 RC1 (version 3.1.101) ] Release date: 23 dec 2015
14
15This is the first release candidate of Redis 3.2. The changelog above shows
16what's new in this release. In the next of the following weeks we'll test
17in depth every feature and we'll release new RCs as bugs are discovered
18and fixed. Note that while 3.2 looks solid already, it contains many changes
19to its internals. It's still fresh code compared to 3.0.
20
21General changes:
22
23* [NEW] Lua scripts "effect replication". Makes possible to write scripts
24        with side effects, use of random commands, and so forth.
25        (Salvatore Sanfilippo)
26* [NEW] Geo indexing support via GEOADD, GEORADIUS and other commands.
27        See http://redis.io/commands/geoadd for more information.
28        (Initially implemented in a fork of Redis called "Ardb".
29         Matt Stancliff "imported back" the work to Redis and created the
30         initial API and implementation. Salvatore Sanfilippo modified
31         the API and the implementation, fixed bugs, improved performances
32         and unified the duplicated code with t_zset.c)
33* [NEW] Lua debugger. A complete stepping, remote debugger for Lua scripts.
34        Video here: https://www.youtube.com/watch?v=IMvRfStaoyM
35* [NEW] SDS improvements for speed and maximum string length.
36        This makes Redis more memory efficient in different use cases.
37        (Design and implementation by Oran Agra, some additional work
38         by Salvatore Sanfilippo)
39* [NEW] Modify Jemalloc size classes to make certain Redis objects fit
40        better, improving memory efficiency. (Oran Agra)
41* [NEW] Better consistency behavior between masters and slaves for expired
42        keys. The slaves are only able to logically consider a key expired
43        even before receiving the `DEL` command from the master. This avoids
44        the delay there is sometimes between the natural expire of the key
45        and the moment the slave is notified. (Salvatore Sanfilippo)
46* [NEW] Support daemon supervision by upstart or systemd (Pierre-Yves Ritschard)
47* [NEW] New encoding for the List type: Quicklists. Very important memory
48        savings and storage space in RDB gains (up to 10x sometimes).
49        (Design and implementation by Matt Stancliff. RDB storage reworked
50         by Salvatore Sanfilippo)
51* [NEW] SPOP with optional count argument. (Initial implementation by
52        Alon Diamant, mostly reimplemented by Salvatore Sanfilippo for speed
53        and in order to make the replication of a this class of commands,
54        having as logical effect the execution of multiple commands, possible).
55* [NEW] Support for RDB AUX fields. Now RDB files contain additional info
56        like the creation date, version of Redis generating it and so forth.
57        (Salvatore Sanfilippo)
58* [NEW] Faster RDB loading via the RESIZEDB opcode to avoid useless hash tables
59        rehashings. (Salvatore Sanfilippo)
60* [NEW] HSTRLEN command. (@landmime and Salvatore Sanfilippo)
61* [NEW] CONFIG SET/GET implementations refactored, partially rewritten,
62        now exposing more config options. (Salvatore Sanfilippo)
63* [NEW] CLUSTER NODES major speedup. (Salvatore Sanfilippo)
64* [NEW] CLIENT KILL TYPE MASTER, to kill (disconnect) masters from slaves.
65        (Salvatore Sanfilippo)
66* [NEW] Jemalloc updated to 4.0.3 (Salvatore Sanfilippo)
67* [NEW] DEBUG RESTART/CRASH-AND-RECOVER [delay] (Salvatore Sanfilippo)
68* [NEW] CLIENT REPLY command implemented: ON, OFF and SKIP modes.
69        (Salvatore Sanfilippo)
70* [NEW] Crash report produced by Redis on crash improved. (Salvatore Sanfilippo)
71* [NEW] Better memory test on crash. (Salvatore Sanfilippo)
72
73Redis Cluster changes:
74
75* All the Redis Cluster changes in 3.2 were backported to 3.0, so there is
76  technically nothing new for now in this release.
77
78Redis Sentinel changes:
79
80* [NEW] Sentinel connection sharing. Makes Sentinels able to scale to
81        monitor many masters. (Salvatore Sanfilippo)
82* [NEW] New SENTINEL INFO-CACHE command. (Matt Stancliff)
83* More things backported to Redis 3.0 in the past, so no longer news of 3.2.
84
85Migrating from 3.0 to 3.2
86=========================
87
88Redis 3.0 is mostly a strict subset of 3.2, you should not have any problem
89upgrading your application from 3.0 to 3.2. However this is a list of small
90non-backward compatible changes introduced in the 3.2 release:
91
92* The default configuration file now binds to 127.0.0.1.
93* Slaves try to no longer expose stale data about already expired keys.
94* The RDB format changed. Redis 3.2 is still able to read 3.0 (and all the
95  past versions) files, but not the other way around.
96* Behavior on crash may be different. The crash log format changed and
97  the memory test executed is now different.
98
99--------------------------------------------------------------------------------
100
101Credits: For each release, a list of changes with the relative author is
102provided. Where not specified the implementation and design is done by
103Salvatore Sanfilippo. Thanks to Redis Labs for making all this possible.
104Also many thanks to all the other contributors and the amazing community
105we have.
106
107Commit messages may contain additional credits.
108
109Cheers,
110Salvatore
111