Skip to content

Commit 05b81d2

Browse files
committed
Redis 4.0.0 GA.
1 parent c29852f commit 05b81d2

File tree

2 files changed

+342
-1
lines changed

2 files changed

+342
-1
lines changed

00-RELEASENOTES

Lines changed: 341 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,347 @@ HIGH: There is a critical bug that may affect a subset of users. Upgrade!
1010
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
1111
--------------------------------------------------------------------------------
1212

13+
================================================================================
14+
Redis 4.0.0 Released Fri Jul 14 13:04:44 CEST 2017
15+
================================================================================
16+
17+
Upgrade urgency CRITICAL: 4.0.0 GA fixes many important bugs.
18+
19+
Dear Redis users,
20+
21+
this is the first stable version of Redis 4.0. There are a number
22+
of bug fixes and improvements compared to the previous RC, mainly:
23+
24+
* Different replication fixes to PSYNC2, the new 4.0 replication engine.
25+
* Modules thread safe contexts were introduced. They are an experimental API right now, but the API is considered to be stable and usable when needed.
26+
* SLOWLOG now logs the offending client name and address. Note that this is a backward compatibility breakage in case old code assumes that the slowlog entry is composed of exactly three entries.
27+
* The modules native data types RDB format changed.
28+
* The AOF check utility is now able to deal with RDB preambles.
29+
* GEORADIUS_RO and GEORADIUSBYMEMBER_RO variants, not supporting the STORE option, were added in order to allow read-only scaling of such queries.
30+
* HSET is now variadic, and HMSET is considered deprecated (but will be supported for years to come). Please use HSET in new code.
31+
* GEORADIUS huge radius (>= ~6000 km) corner cases fixed, certain elements near the edges were not returned.
32+
* DEBUG DIGEST modules API added.
33+
* HyperLogLog commands no longer crash on certain input (non HLL) strings.
34+
* Fixed SLAVEOF inside MULTI/EXEC blocks.
35+
* Many other minor bug fixes and improvements.
36+
37+
Note that 4.0 is probably one of the most extreme releases of Redis ever
38+
made in terms of changes inside the internals: all the aggregated data types
39+
no longer use Redis Objects structures but directly SDS objects, certain
40+
deletion operations are now threaded, the replication engine was modified
41+
in many ways. So please handle this release with care. A few patch-level
42+
releases will follow in the next weeks and months fixing the important issues
43+
discovered by the users.
44+
45+
You can read the new set of features below in this file, there are a lot
46+
of improvements that can make a real difference in real world use cases.
47+
Also note that Redis 4.0 is, as usually, almost a perfect superset of Redis
48+
3.2, so it is very rare that compatibility with the past is broken in terms
49+
of exported commands.
50+
51+
IMPORTANT: Redis Cluster users, please note that, as specified in the list
52+
of incompatibilities, Redis 4.0 cluster bus protocol is not compatible with
53+
Redis 3.2, so in order to upgrade, a mass reboot of the instances is needed
54+
and rolling upgrades are not possible. This change was needed in order to
55+
add compatibility for Containers/NAT, where the bus port at a fixed offset
56+
was not an acceptable design, so we had to change many things, resulting
57+
in the incompatible protocol.
58+
59+
Have fun with Redis 4.0!
60+
Salvatore
61+
62+
antirez in commit c29852ff:
63+
Modules: fix thread safe context DB selection.
64+
1 file changed, 3 insertions(+)
65+
66+
antirez in commit b73f186a:
67+
Modules documentation removed from source.
68+
4 files changed, 2830 deletions(-)
69+
70+
antirez in commit 09d93ec9:
71+
Markdown generation of Redis Modules API reference improved.
72+
2 files changed, 83 insertions(+), 74 deletions(-)
73+
74+
antirez in commit 87aabb1a:
75+
Fix replication of SLAVEOF inside transaction.
76+
2 files changed, 19 insertions(+), 3 deletions(-)
77+
78+
antirez in commit 44f89d1d:
79+
CLUSTER GETKEYSINSLOT: avoid overallocating.
80+
1 file changed, 5 insertions(+)
81+
82+
antirez in commit 0df24b68:
83+
Fix isHLLObjectOrReply() to handle integer encoded strings.
84+
1 file changed, 1 insertion(+)
85+
86+
antirez in commit 884ceb69:
87+
Clients blocked in modules: free argv/argc later.
88+
2 files changed, 15 insertions(+), 3 deletions(-)
89+
90+
antirez in commit ccbdd762:
91+
Event loop: call after sleep() only from top level.
92+
2 files changed, 4 insertions(+), 2 deletions(-)
93+
94+
antirez in commit 10925e46:
95+
redis-check-aof: tell users there is a --fix option.
96+
1 file changed, 2 insertions(+), 1 deletion(-)
97+
98+
Guy Benoish in commit 99bb1c74:
99+
Modules: Fix io->bytes calculation in RDB save
100+
1 file changed, 55 insertions(+), 30 deletions(-)
101+
102+
antirez in commit cfdcd440:
103+
AOF check utility: ability to check files with RDB preamble.
104+
6 files changed, 61 insertions(+), 35 deletions(-)
105+
106+
sunweinan in commit 1cefb1c5:
107+
minor fix in listJoin().
108+
1 file changed, 1 insertion(+), 1 deletion(-)
109+
110+
antirez in commit db791a1e:
111+
Free IO context if any in RDB loading code.
112+
1 file changed, 4 insertions(+)
113+
114+
antirez in commit 419dacfe:
115+
Modules: DEBUG DIGEST interface.
116+
5 files changed, 108 insertions(+), 1 deletion(-)
117+
118+
spinlock in commit 5d03b831:
119+
update Makefile for test-sds
120+
1 file changed, 1 insertion(+), 1 deletion(-)
121+
122+
spinlock in commit ed437b82:
123+
Optimize addReplyBulkSds for better performance
124+
1 file changed, 1 insertion(+), 2 deletions(-)
125+
126+
antirez in commit 4ebfe265:
127+
Avoid closing invalid FDs to make Valgrind happier.
128+
1 file changed, 5 insertions(+), 1 deletion(-)
129+
130+
antirez in commit b6cab88c:
131+
Modules: no MULTI/EXEC for commands replicated from async contexts.
132+
1 file changed, 5 insertions(+)
133+
134+
antirez in commit 5c5e8a50:
135+
Add symmetrical assertion to track c->reply_buffer infinite growth.
136+
1 file changed, 4 insertions(+)
137+
138+
Dvir Volk in commit c63a97f8:
139+
fixed #4100
140+
1 file changed, 1 insertion(+)
141+
142+
antirez in commit eeb90571:
143+
Fix GEORADIUS edge case with huge radius.
144+
2 files changed, 39 insertions(+), 20 deletions(-)
145+
146+
antirez in commit 670456a7:
147+
redis-cli --latency: ability to run non interactively.
148+
1 file changed, 39 insertions(+), 3 deletions(-)
149+
150+
antirez in commit 64db8044:
151+
HMSET and MSET implementations unified. HSET now variadic.
152+
2 files changed, 18 insertions(+), 22 deletions(-)
153+
154+
antirez in commit e43c890e:
155+
Aesthetic changes to #4068 PR to conform to Redis coding standard.
156+
1 file changed, 6 insertions(+), 7 deletions(-)
157+
158+
itamar in commit 3f3dc3b8:
159+
Sets up fake client to select current db in RM_Call()
160+
1 file changed, 1 insertion(+)
161+
162+
antirez in commit ba773724:
163+
Fix abort typo in Lua debugger help screen.
164+
1 file changed, 1 insertion(+), 1 deletion(-)
165+
166+
antirez in commit bdd6de96:
167+
Added GEORADIUS(BYMEMBER)_RO variants for read-only operations.
168+
3 files changed, 32 insertions(+), 11 deletions(-)
169+
170+
Suraj Narkhede in commit de391ff1:
171+
Fix brpop command table entry and redirect blocked clients.
172+
2 files changed, 3 insertions(+), 2 deletions(-)
173+
174+
antirez in commit 5af0fc0c:
175+
RDB modules values serialization format version 2.
176+
4 files changed, 127 insertions(+), 28 deletions(-)
177+
178+
antirez in commit 6516958e:
179+
ARM: Fix stack trace generation on crash.
180+
1 file changed, 5 insertions(+)
181+
182+
antirez in commit 3669f96e:
183+
Issue #4027: unify comment and modify return value in freeMemoryIfNeeded().
184+
2 files changed, 7 insertions(+), 7 deletions(-)
185+
186+
Suraj Narkhede in commit 896c4690:
187+
Fix following issues in blocking commands: 1. brpop last key index, thus checking all keys for slots. 2. Memory leak in clusterRedirectBlockedClientIfNeeded. 3. Remove while loop in clusterRedirectBlockedClientIfNeeded.
188+
1 file changed, 1 insertion(+)
189+
190+
Zachary Marquez in commit deeb795a:
191+
Prevent expirations and evictions while paused
192+
2 files changed, 10 insertions(+)
193+
194+
antirez in commit a6615423:
195+
Upgrade 4.0 changelog with more backward incompatibilities.
196+
1 file changed, 8 insertions(+)
197+
198+
xuzhou in commit 0b367871:
199+
Optimize set command with ex/px when updating aof.
200+
1 file changed, 3 insertions(+), 3 deletions(-)
201+
202+
antirez in commit 2ae733d9:
203+
redis-benchmark: add -t hset target.
204+
1 file changed, 7 insertions(+)
205+
206+
xuzhou in commit 63e1c9f2:
207+
Fix set with ex/px option when propagated to aof
208+
4 files changed, 36 insertions(+), 1 deletion(-)
209+
210+
minghang.zmh in commit 0231156f:
211+
fix server.stat_net_output_bytes calc bug
212+
1 file changed, 1 insertion(+), 1 deletion(-)
213+
214+
xuchengxuan in commit e99954e4:
215+
Fixed comments of slowlog duration
216+
1 file changed, 1 insertion(+), 1 deletion(-)
217+
218+
cbgbt in commit d048f972:
219+
cli: Only print elapsed time on OUTPUT_STANDARD
220+
1 file changed, 3 insertions(+), 1 deletion(-)
221+
222+
Aric Huang in commit b5f22939:
223+
(fix) Update create-cluster README
224+
1 file changed, 4 insertions(+), 4 deletions(-)
225+
226+
antirez in commit 0b7ba621:
227+
SLOWLOG: log offending client address and name.
228+
4 files changed, 27 insertions(+), 7 deletions(-)
229+
230+
Antonio Mallia in commit 1fbc90fe:
231+
Removed duplicate 'sys/socket.h' include
232+
1 file changed, 1 deletion(-)
233+
234+
Antonio Mallia in commit c7a6b711:
235+
Fixed comment in clusterMsg version field
236+
1 file changed, 1 insertion(+), 1 deletion(-)
237+
238+
Qu Chen in commit 73d358f7:
239+
Implement getKeys procedure for georadius and georadiusbymember commands.
240+
3 files changed, 41 insertions(+), 2 deletions(-)
241+
242+
antirez in commit c782d189:
243+
Fix PERSIST expired key resuscitation issue #4048.
244+
2 files changed, 4 insertions(+), 7 deletions(-)
245+
246+
antirez in commit cb548bf3:
247+
More informative -MISCONF error message.
248+
1 file changed, 1 insertion(+), 1 deletion(-)
249+
250+
antirez in commit 8cd6a2bd:
251+
Collect fork() timing info only if fork succeeded.
252+
1 file changed, 4 insertions(+), 3 deletions(-)
253+
254+
antirez in commit a3941aa5:
255+
redis-cli --bigkeys: show error when TYPE fails.
256+
1 file changed, 7 insertions(+), 2 deletions(-)
257+
258+
antirez in commit 6b21cebd:
259+
Modules TSC: use atomic var for server.unixtime.
260+
3 files changed, 15 insertions(+), 5 deletions(-)
261+
262+
antirez in commit 54bd224f:
263+
atomicvar.h: show used API in INFO. Add macro to force __sync builtin.
264+
2 files changed, 13 insertions(+), 6 deletions(-)
265+
266+
antirez in commit a864d25c:
267+
zmalloc.c: remove thread safe mode, it's the default way.
268+
3 files changed, 3 insertions(+), 23 deletions(-)
269+
270+
antirez in commit b338f2b9:
271+
Modules TSC: Add mutex for server.lruclock.
272+
2 files changed, 2 insertions(+)
273+
274+
antirez in commit 7e9c658d:
275+
Modules TSC: Improve inter-thread synchronization.
276+
5 files changed, 75 insertions(+), 20 deletions(-)
277+
278+
antirez in commit e69af32f:
279+
Simplify atomicvar.h usage by having the mutex name implicit.
280+
3 files changed, 25 insertions(+), 27 deletions(-)
281+
282+
antirez in commit 26e57f17:
283+
Lazyfree: fix lazyfreeGetPendingObjectsCount() race reading counter.
284+
1 file changed, 3 insertions(+), 1 deletion(-)
285+
286+
antirez in commit 2acf003c:
287+
Modules TSC: HELLO.KEYS reply format fixed.
288+
1 file changed, 15 insertions(+), 13 deletions(-)
289+
290+
antirez in commit 12fd298f:
291+
Modules TSC: put the client in the pending write list.
292+
1 file changed, 13 insertions(+), 1 deletion(-)
293+
294+
antirez in commit 5b1afa4a:
295+
adlist: fix final list count in listJoin().
296+
1 file changed, 1 insertion(+)
297+
298+
antirez in commit 717b2eea:
299+
adlist: fix listJoin() to handle empty lists.
300+
1 file changed, 8 insertions(+), 2 deletions(-)
301+
302+
antirez in commit a839036a:
303+
Modules: remove unused var in example module.
304+
1 file changed, 2 insertions(+), 3 deletions(-)
305+
306+
antirez in commit eda5ee5e:
307+
Modules TSC: HELLO.KEYS example draft finished.
308+
1 file changed, 35 insertions(+), 6 deletions(-)
309+
310+
antirez in commit fb8734fe:
311+
Module: fix RedisModule_Call() "l" specifier to create a raw string.
312+
1 file changed, 1 insertion(+), 1 deletion(-)
313+
314+
antirez in commit c4b88495:
315+
Modules TSC: Release the GIL for all the time we are blocked.
316+
6 files changed, 100 insertions(+), 22 deletions(-)
317+
318+
antirez in commit fcd9a07d:
319+
Modules TSC: Export symbols of the new API.
320+
2 files changed, 12 insertions(+)
321+
322+
antirez in commit 8affa3e7:
323+
Modules TSC: Handling of RM_Reply* functions.
324+
3 files changed, 82 insertions(+), 14 deletions(-)
325+
326+
antirez in commit 31b1f3c1:
327+
Modules TSC: Basic TS context creeation and handling.
328+
1 file changed, 60 insertions(+), 1 deletion(-)
329+
330+
antirez in commit 74f3a843:
331+
Modules TSC: GIL and cooperative multi tasking setup.
332+
3 files changed, 31 insertions(+), 1 deletion(-)
333+
334+
antirez in commit 5021fda2:
335+
Regression test for #3899 fixed.
336+
1 file changed, 36 insertions(+), 19 deletions(-)
337+
338+
antirez in commit 166bdbda:
339+
Regression test for PSYNC2 issue #3899 added.
340+
2 files changed, 62 insertions(+)
341+
342+
antirez in commit b506eb74:
343+
Check event loop creation return value. Fix #3951.
344+
1 file changed, 6 insertions(+)
345+
346+
antirez in commit 80690562:
347+
PSYNC2: fix master cleanup when caching it.
348+
3 files changed, 20 insertions(+), 7 deletions(-)
349+
350+
antirez in commit 8c4b0f41:
351+
Defrag: test currently disabled, too many false positives.
352+
1 file changed, 40 insertions(+), 38 deletions(-)
353+
13354
================================================================================
14355
Redis 4.0-RC3 Released Sat Apr 22 11:19:56 CEST 2017
15356
================================================================================

src/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
#define REDIS_VERSION "3.9.103"
1+
#define REDIS_VERSION "4.0.0"

0 commit comments

Comments
 (0)