Skip to content

Commit b8c67ce

Browse files
authored
Redis 6.2 RC1.
1 parent 9acd40d commit b8c67ce

File tree

3 files changed

+294
-25
lines changed

3 files changed

+294
-25
lines changed

00-RELEASENOTES

Lines changed: 215 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,220 @@
1-
Hello! This file is just a placeholder, since this is the "unstable" branch
2-
of Redis, the place where all the development happens.
1+
================================================================================
2+
Redis 6.2 RC1 Released Mon Dec 14 11:50:00 IST 2020
3+
================================================================================
34

4-
There is no release notes for this branch, it gets forked into another branch
5-
every time there is a partial feature freeze in order to eventually create
6-
a new stable release.
5+
Upgrade urgency LOW: This is the first RC of Redis 6.2.
76

8-
Usually "unstable" is stable enough for you to use it in development environments
9-
however you should never use it in production environments. It is possible
10-
to download the latest stable release here:
7+
Introduction to the Redis 6.2 release
8+
=====================================
119

12-
http://download.redis.io/releases/redis-stable.tar.gz
10+
This release is the first significant Redis release managed by the core team
11+
under the new project governance model.
1312

14-
More information is available at http://redis.io
13+
Redis 6.2 includes many new commands and improvements, but no big features. It
14+
mainly makes Redis more complete and addresses issues that have been requested
15+
by many users frequently or for a long time.
1516

16-
Happy hacking!
17+
Many of these changes were not eligible for 6.0.x for several reasons:
18+
19+
1. They are not backward compatible, which is always the case with new or
20+
extended commands (that cannot be replicated to an older replica).
21+
2. They require a longer release-candidate test cycle.
22+
23+
24+
Here is a comprehensive list of changes in this release compared to 6.0.9,
25+
each one includes the PR number that added it, so you can get more details
26+
at https://github.com/redis/redis/pull/<number>
27+
28+
New commands / args:
29+
* Add SMISMEMBER command that checks multiple members (#7615)
30+
* Add ZMSCORE command that returns an array of scores (#7593)
31+
* Add LMOVE and BLMOVE commands that pop and push arbitrarily (#6929)
32+
* Add RESET command that resets client connection state(#7982)
33+
* Add COPY command that copies keys (#7953)
34+
* Add ZDIFF and ZDIFFSTORE commands (#7961)
35+
* Add ZINTER and ZUNION commands (#7794)
36+
* Add GEOSEARCH/GEOSEARCHSTORE commands for bounding box spatial queries (#8094)
37+
* Add GET parameter to SET command, for more powerful GETSET (#7852)
38+
* Add exclusive range query to XPENDING (#8130)
39+
* Add exclusive range query to X[REV]RANGE (#8072)
40+
* Add GT and LT options to ZADD for conditional score updates (#7818)
41+
* Add CLIENT INFO and CLIENT LIST for specific ids (#8113)
42+
* Add IDLE argument to XPENDING command (#7972)
43+
* Add local address to CLIENT LIST, and a CLIENT KILL filter. (#7913)
44+
* Add NOMKSTREAM option to XADD command (#7910)
45+
* Add command introspection to Sentinel (#7940)
46+
* Add SENTINEL MYID subcommand (#7858)
47+
48+
New features:
49+
* Dump payload sanitization: prevent corrupt payload causing crashes (#7807)
50+
Has flags to enable full O(N) validation (disabled by default).
51+
* ACL patterns for Pub/Sub channels (#7993)
52+
* Support ACL for Sentinel mode (#7888)
53+
* Support getting configuration from both stdin and file at the same time (#7893)
54+
Lets you avoid storing secrets on the disk.
55+
56+
New features in CLI tools:
57+
* redis-cli RESP3 push support (#7609)
58+
* redis-cli cluster import support source and target that require auth (#7994)
59+
* redis-cli URIs able to provide user name in addition to password (#8048)
60+
* redis-cli/redis-benchmark allow specifying the prefered ciphers/ciphersuites (#8005)
61+
* redis-cli add -e option to exit with code when command execution fails (#8136)
62+
63+
Command behavior changes:
64+
* EXISTS should not alter LRU (#8016)
65+
In Redis 5.0 and 6.0 it would have touched the LRU/LFU of the key.
66+
* OBJECT should not reveal logically expired keys (#8016)
67+
Will now behave the same TYPE or any other non-DEBUG command.
68+
* Improve db id range check for SELECT and MOVE (#8085)
69+
Changes the error message text on a wrong db index.
70+
* Modify AUTH / HELLO error message (#7648)
71+
Changes the error message text when the user isn't found or is disabled.
72+
* BITOPS length limited to proto_max_bulk_len rather than 512MB (#8096)
73+
The limit is now configurable like in SETRANGE, and APPEND.
74+
* GEORADIUS[BYMEMBER] can fail with -OOM if Redis is over the memory limit (#8107)
75+
76+
Other behavior changes:
77+
* Optionally (default) fail to start if requested bind address is not available (#7936)
78+
If you rely on Redis starting successfully even if one of the bind addresses
79+
is not available, you'll need to tune the new config.
80+
* Limit the main db dictionaries expansion to prevent key eviction (#7954)
81+
In the past big dictionary rehashing could result in massive data eviction.
82+
Now this rehashing is delayed (up to a limit), which can result in performance
83+
loss due to hash collisions.
84+
* CONFIG REWRITE is atomic and safer, but requires write access to the config file's folder (#7824, #8051)
85+
This change was already present in 6.0.9, but was missing from the release
86+
notes.
87+
* A new incremental eviction mechanism that reduces latency on eviction spikes (#7653)
88+
In pathological cases this can cause memory to grow uncontrolled and may require
89+
specific tuning.
90+
* Not resetting "save" config when Redis is started with command line arguments. (#7092)
91+
In case you provide command line arguments without "save" and count on it
92+
being disabled, Now the defaults "save" config will kick in.
93+
* Update memory metrics for INFO during loading (#7690)
94+
* When "supervised" config is enabled, it takes precedence over "daemonize". (#8036)
95+
* Assertion and panic, print crash log without generating SIGSEGV (#7585)
96+
* Added crash log report on SIGABRT, instead of silently exiting (#8004)
97+
* Disable THP (Transparent Huge Pages) if enabled (#7381)
98+
If you deliberately enabled it, you'll need to config Redis to keep it.
99+
100+
Bug fixes:
101+
* Handle output buffer limits for module blocked clients (#8141)
102+
Could result in a module sending reply to a blocked client to go beyond the
103+
limit.
104+
* Fix setproctitle related crashes. (#8150, #8088)
105+
Caused various crashes on startup, mainly on Apple M1 chips or under
106+
instrumentation.
107+
* A module doing RM_Call could cause replicas to get nested MULTI (#8097).
108+
* Backup/restore cluster mode keys to slots map for repl-diskless-load=swapdb (#8108)
109+
In cluster mode with repl-diskless-load, when loading failed, slot map
110+
wouldn't have been restored.
111+
* Fix oom-score-adj-values range, and bug when used in config file (#8046)
112+
Enabling setting this in the config file in a line after enabling it, would
113+
have been buggy.
114+
* Reset average ttl when empty databases (#8106)
115+
Just causing misleading metric in INFO
116+
* Disable rehash when Redis has child process (#8007)
117+
This could have caused excessive CoW during BGSAVE, replication or AOFRW.
118+
* Further improved ACL algorithm for picking categories (#7966)
119+
Output of ACL GETUSER is now more similar to the one provided by ACL SETUSER.
120+
* Fix bug with module GIL being released prematurely (#8061)
121+
Could in theory (and rarely) cause multi-threaded modules to corrupt memory.
122+
* Fix cluster redirect for module command with no firstkey. (#7539)
123+
* Reduce effect of client tracking causing feedback loop in key eviction (#8100)
124+
* Kill disk-based fork child when all replicas drop and 'save' is not enabled (#7819)
125+
* Rewritten commands (modified for propagation) are logged as their original command (#8006)
126+
* Fix cluster access to unaligned memory (SIGBUS on old ARM) #7958
127+
* If diskless repl child is killed, make sure to reap the child pid (#7742)
128+
* Broadcast a PONG message when slot's migration is over, may reduce MOVED responses (#7571)
129+
130+
Other improvements:
131+
* TLS Support in redis-benchmark (#7959)
132+
* Accelerate diskless master connections, and general re-connections (#6271)
133+
* Run active defrag while blocked / loading (#7726)
134+
* Performance and memory reporting improvement - sds take control of its internal fragmentation (#7875)
135+
* Speedup cluster failover. (#7948)
136+
137+
Platform / toolchain support related improvements:
138+
* Optionally (not by default) use H/W Monotonic clock for faster time sampling (#7644)
139+
* Remove the requirements for C11 and _Atomic supporting compiler (#7707)
140+
This would allow to more easily build and use Redis on older systems and
141+
compilers again.
142+
* Fix crash log registers output on ARM. (#8020)
143+
* Raspberry build fix. (#8095)
144+
* Setting process title support for Haiku. (#8060)
145+
* DragonFlyBSD RSS memory sampling support. (#8023)
146+
147+
New configuration options:
148+
* Enable configuring OpenSSL using the standard openssl.cnf (#8143)
149+
* oom-score-adj-values can config can now take absolute values (besides relative ones) (#8046)
150+
* TLS: Add different client cert support. (#8076)
151+
* Note that a few other changes listed above added their config options.
152+
153+
Info fields and introspection changes:
154+
* Add INFO fields to track diskless and disk-based replication progress (#7981)
155+
* Add INFO field for main thread cpu time, and scrape system time. (#8132)
156+
* Add total_forks to INFO STATS (#8155)
157+
* Add maxclients and cluster_connections to INFO CLIENTS (#7979)
158+
* Add tracking bcast flag and client redirection in client list (#7995)
159+
* Fixed INFO client_recent_max_input_buffer includes argv array (#8065, see #7874)
160+
* Note that a few other changes listed above added their info fields.
161+
162+
Module API changes:
163+
* Add CTX_FLAGS_DENY_BLOCKING as a unified the way to know if blocking is allowed (#8025)
164+
* Add data type callbacks for lazy free effort, and unlink (#7912)
165+
* Add data type callback for COPY command (#8112)
166+
* Add callbacks for defrag support. (#8149)
167+
* Add module event for repl-diskless-load swapdb (#8153)
168+
169+
Module related fixes:
170+
* Moved RMAPI_FUNC_SUPPORTED so that it's usable (#8037)
171+
* Improve timer accuracy (#7987)
172+
* Allow '\0' inside of result of RM_CreateStringPrintf (#6260)
173+
174+
175+
Thanks to all the users and developers who made this release possible.
176+
We'll follow up with more RC releases, until the code looks production ready
177+
and we don't get reports of serious issues for a while.
178+
179+
A special thank you for the amount of work put into this release by:
180+
- Wang Yuan
181+
- Felipe Machado
182+
- Filipe Oliveira
183+
- Tatsuya Arisawa
184+
- Yang Bodong
185+
- Jim Brunner
186+
- Wen Hui
187+
- Guy Benoish
188+
- Chen Yang
189+
- Nitai Caro
190+
- Meir Shpilraien
191+
- Madelyn Olson
192+
- maohuazhu
193+
- Valentino Geron
194+
- Tyson Andre
195+
- Michael Grunder
196+
- alexronke-channeladvisor
197+
- sundb
198+
- WuYunlong
199+
- Yoav Steinberg
200+
- Uri Shachar
201+
- Nykolas Laurentino de Lima
202+
- David CARLIER
203+
204+
205+
Migrating from 6.0 to 6.2
206+
=========================
207+
208+
Redis 6.2 is mostly a strict superset of 6.0, you should not have any problem
209+
upgrading your application from 6.0 to 6.2. However there are some small changes
210+
of behavior listed above, please make sure you are not badly affected by any of
211+
them.
212+
213+
Specifically these sections:
214+
* Command behavior changes
215+
* Other behavior changes
216+
217+
--------------------------------------------------------------------------------
218+
219+
Cheers,
220+
The Redis team

0 commit comments

Comments
 (0)