2021-01-31 17:52:50 +02:00
|
|
|
Redis 6.2 RC3 Released Tue Feb 1 14:00:00 IST 2021
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
Upgrade urgency LOW: This is the third Release Candidate of Redis 6.2.
|
|
|
|
|
|
|
|
Here is a comprehensive list of changes in this release compared to 6.2 RC2,
|
|
|
|
each one includes the PR number that added it, so you can get more details
|
|
|
|
at https://github.com/redis/redis/pull/<number>
|
|
|
|
|
|
|
|
New commands / args:
|
|
|
|
* Add HRANDFIELD and ZRANDMEMBER commands (#8297)
|
|
|
|
* Add FAILOVER command (#8315)
|
|
|
|
* Add GETEX, GETDEL commands (#8327)
|
|
|
|
* Add PXAT/EXAT arguments to SET command (#8327)
|
|
|
|
* Add SYNC arg to FLUSHALL and FLUSHDB, and ASYNC/SYNC arg to SCRIPT FLUSH (#8258)
|
|
|
|
|
|
|
|
Sentinel:
|
|
|
|
* Add hostname support to Sentinel (#8282)
|
|
|
|
* Prevent file descriptors from leaking into Sentinel scripts (#8242)
|
|
|
|
* Fix config file line order dependency and config rewrite sequence (#8271)
|
|
|
|
|
|
|
|
New configuration options:
|
|
|
|
* Add set-proc-title config option to disable changes to the process title (#3623)
|
|
|
|
* Add proc-title-template option to control what's shown in the process title (#8397)
|
|
|
|
* Add lazyfree-lazy-user-flush config option to control FLUSHALL, FLUSHDB and SCRIPT FLUSH (#8258)
|
|
|
|
|
|
|
|
Bug fixes:
|
|
|
|
* AOF: recover from last write error by turning on/off appendonly config (#8030)
|
|
|
|
* Exit on fsync error when the AOF fsync policy is 'always' (#8347)
|
|
|
|
* Avoid assertions (on older kernels) when testing arm64 CoW bug (#8405)
|
|
|
|
* CONFIG REWRITE should honor umask settings (#8371)
|
|
|
|
* Fix firstkey,lastkey,step in COMMAND command for some commands (#8367)
|
|
|
|
|
|
|
|
Special considerations:
|
|
|
|
* Fix misleading description of the save configuration directive (#8337)
|
|
|
|
|
|
|
|
Improvements:
|
|
|
|
* A way to get RDB file via replication without excessive replication buffers (#8303)
|
|
|
|
* Optimize performance of clusterGenNodesDescription for large clusters (#8182)
|
|
|
|
|
|
|
|
Info fields and introspection changes:
|
|
|
|
* SLOWLOG and LATENCY monitor include unblocking time of blocked commands (#7491)
|
|
|
|
|
|
|
|
Modules:
|
|
|
|
* Add modules API for streams (#8288)
|
|
|
|
* Add event for fork child birth and termination (#8289)
|
|
|
|
* Add RM_BlockedClientMeasureTime* etc, to track background processing in commandstats (#7491)
|
|
|
|
* Fix bug in v6.2, wrong value passed to the new unlink callback (#8381)
|
|
|
|
* Fix bug in v6.2, modules blocked on keys unblock on commands like LPUSH (#8356)
|
|
|
|
|
2021-01-10 21:50:12 +02:00
|
|
|
================================================================================
|
|
|
|
Redis 6.2 RC2 Released Tue Jan 12 16:17:20 IST 2021
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
Upgrade urgency LOW: This is the second Release Candidate of Redis 6.2.
|
|
|
|
|
|
|
|
IMPORTANT: If you're running Redis on ARM64 or a big-endian system, upgrade may
|
|
|
|
have significant implications. Please be sure to read the notes below.
|
|
|
|
|
|
|
|
Here is a comprehensive list of changes in this release compared to 6.2 RC1,
|
|
|
|
each one includes the PR number that added it, so you can get more details
|
|
|
|
at https://github.com/redis/redis/pull/<number>
|
|
|
|
|
|
|
|
New commands / args:
|
|
|
|
* Add the REV, BYLEX and BYSCORE arguments to ZRANGE, and the ZRANGESTORE command (#7844)
|
|
|
|
* Add the XAUTOCLAIM command (#7973)
|
|
|
|
* Add the MINID trimming strategy and the LIMIT argument to XADD and XTRIM (#8169)
|
|
|
|
* Add the ANY argument to GEOSEARCH and GEORADIUS (#8259)
|
|
|
|
* Add the CH, NX, XX arguments to GEOADD (#8227)
|
|
|
|
* Add the COUNT argument to LPOP and RPOP (#8179)
|
|
|
|
* Add the WRITE argument to CLIENT PAUSE for pausing write commands exclusively (#8170)
|
|
|
|
* Change the proto-ver argument of HELLO to optional (#7377)
|
|
|
|
* Add the CLIENT TRACKINGINFO subcommand (#7309)
|
|
|
|
|
|
|
|
Command behavior changes:
|
|
|
|
* CLIENT TRACKING yields an error when given overlapping BCAST prefixes (#8176)
|
|
|
|
* SWAPDB invalidates WATCHed keys (#8239)
|
|
|
|
* SORT command behaves differently when used on a writable replica (#8283)
|
|
|
|
|
|
|
|
Other behavior changes:
|
|
|
|
* Avoid propagating MULTI/EXEC for read-only transactions (#8216)
|
|
|
|
* Remove the read-only flag from TIME, ECHO, ROLE, LASTSAVE (#8216)
|
|
|
|
* Fix the command flags of PFDEBUG (#8222)
|
|
|
|
* Tracking clients will no longer receive unnecessary key invalidation messages after FLUSHDB (#8039)
|
|
|
|
* Sentinel: Fix missing updates to the config file after SENTINEL SET command (#8229)
|
|
|
|
|
|
|
|
Bug fixes with compatibility implications (bugs introduced in Redis 6.0):
|
|
|
|
* Fix RDB CRC64 checksum on big-endian systems (#8270)
|
|
|
|
If you're using big-endian please consider the compatibility implications with
|
|
|
|
RESTORE, replication and persistence.
|
|
|
|
* Fix wrong order of key/value in Lua's map response (#8266)
|
|
|
|
If your scripts use redis.setresp() or return a map (new in Redis 6.0), please
|
|
|
|
consider the implications.
|
|
|
|
|
|
|
|
Bug fixes that are only applicable to previous releases of Redis 6.2:
|
|
|
|
* Resolve rare assertions in active defragmentation while loading (#8284, #8281)
|
|
|
|
|
|
|
|
Bug fixes:
|
|
|
|
* Fix the selection of a random element from large hash tables (#8133)
|
|
|
|
* Fix an issue where a forked process deletes the parent's pidfile (#8231)
|
|
|
|
* Fix crashes when enabling io-threads-do-reads (#8230)
|
|
|
|
* Fix a crash in redis-cli after executing cluster backup (#8267)
|
|
|
|
* Fix redis-benchmark to use an IP address for the first cluster node (#8154)
|
|
|
|
* Fix saving of strings larger than 2GB into RDB files (#8306)
|
|
|
|
|
|
|
|
Additional improvements:
|
|
|
|
* Improve replication handshake time (#8214)
|
|
|
|
* Release client tracking table memory asynchronously in cases where the DB is also freed asynchronously (#8039)
|
|
|
|
* Avoid wasteful transient memory allocation in certain cases (#8286, #5954)
|
|
|
|
* Handle binary string values by the 'requirepass' and 'masterauth' configs (#8200)
|
|
|
|
|
|
|
|
Platform and deployment-related changes:
|
|
|
|
* Install redis-check-rdb and redis-check-aof as symlinks to redis-server (#5745)
|
|
|
|
* Add a check for an ARM64 Linux kernel bug (#8224)
|
|
|
|
Due to the potential severity of this issue, Redis will refuse to run on
|
|
|
|
affected platforms by default.
|
|
|
|
|
|
|
|
Info fields and introspection changes:
|
|
|
|
* Add the errorstats section to the INFO command (#8217)
|
|
|
|
* Add the failed_calls and rejected_calls fields INFO's commandstats section (#8217)
|
|
|
|
* Report child copy-on-write metrics continuously (#8264)
|
|
|
|
|
|
|
|
Module API changes:
|
|
|
|
* Add the RedisModule_SendChildCOWInfo API (#8264)
|
|
|
|
* Add the may-replicate command flag (#8170)
|
|
|
|
|
2020-12-14 20:54:10 +02:00
|
|
|
================================================================================
|
|
|
|
Redis 6.2 RC1 Released Mon Dec 14 11:50:00 IST 2020
|
|
|
|
================================================================================
|
2012-02-05 11:08:01 +01:00
|
|
|
|
2021-01-10 21:50:12 +02:00
|
|
|
Upgrade urgency LOW: This is the first Release Candidate of Redis 6.2.
|
2012-02-05 11:08:01 +01:00
|
|
|
|
2020-12-14 20:54:10 +02:00
|
|
|
Introduction to the Redis 6.2 release
|
|
|
|
=====================================
|
2012-02-05 11:08:01 +01:00
|
|
|
|
2020-12-14 20:54:10 +02:00
|
|
|
This release is the first significant Redis release managed by the core team
|
|
|
|
under the new project governance model.
|
2012-02-05 11:08:01 +01:00
|
|
|
|
2020-12-14 20:54:10 +02:00
|
|
|
Redis 6.2 includes many new commands and improvements, but no big features. It
|
|
|
|
mainly makes Redis more complete and addresses issues that have been requested
|
|
|
|
by many users frequently or for a long time.
|
2012-02-05 11:08:01 +01:00
|
|
|
|
2020-12-14 20:54:10 +02:00
|
|
|
Many of these changes were not eligible for 6.0.x for several reasons:
|
|
|
|
|
|
|
|
1. They are not backward compatible, which is always the case with new or
|
|
|
|
extended commands (that cannot be replicated to an older replica).
|
|
|
|
2. They require a longer release-candidate test cycle.
|
|
|
|
|
|
|
|
|
|
|
|
Here is a comprehensive list of changes in this release compared to 6.0.9,
|
|
|
|
each one includes the PR number that added it, so you can get more details
|
|
|
|
at https://github.com/redis/redis/pull/<number>
|
|
|
|
|
|
|
|
New commands / args:
|
|
|
|
* Add SMISMEMBER command that checks multiple members (#7615)
|
|
|
|
* Add ZMSCORE command that returns an array of scores (#7593)
|
|
|
|
* Add LMOVE and BLMOVE commands that pop and push arbitrarily (#6929)
|
2021-01-10 21:50:12 +02:00
|
|
|
* Add RESET command that resets client connection state (#7982)
|
2020-12-14 20:54:10 +02:00
|
|
|
* Add COPY command that copies keys (#7953)
|
|
|
|
* Add ZDIFF and ZDIFFSTORE commands (#7961)
|
|
|
|
* Add ZINTER and ZUNION commands (#7794)
|
|
|
|
* Add GEOSEARCH/GEOSEARCHSTORE commands for bounding box spatial queries (#8094)
|
|
|
|
* Add GET parameter to SET command, for more powerful GETSET (#7852)
|
|
|
|
* Add exclusive range query to XPENDING (#8130)
|
|
|
|
* Add exclusive range query to X[REV]RANGE (#8072)
|
|
|
|
* Add GT and LT options to ZADD for conditional score updates (#7818)
|
|
|
|
* Add CLIENT INFO and CLIENT LIST for specific ids (#8113)
|
|
|
|
* Add IDLE argument to XPENDING command (#7972)
|
|
|
|
* Add local address to CLIENT LIST, and a CLIENT KILL filter. (#7913)
|
|
|
|
* Add NOMKSTREAM option to XADD command (#7910)
|
|
|
|
* Add command introspection to Sentinel (#7940)
|
|
|
|
* Add SENTINEL MYID subcommand (#7858)
|
|
|
|
|
|
|
|
New features:
|
|
|
|
* Dump payload sanitization: prevent corrupt payload causing crashes (#7807)
|
|
|
|
Has flags to enable full O(N) validation (disabled by default).
|
|
|
|
* ACL patterns for Pub/Sub channels (#7993)
|
|
|
|
* Support ACL for Sentinel mode (#7888)
|
|
|
|
* Support getting configuration from both stdin and file at the same time (#7893)
|
|
|
|
Lets you avoid storing secrets on the disk.
|
|
|
|
|
|
|
|
New features in CLI tools:
|
|
|
|
* redis-cli RESP3 push support (#7609)
|
|
|
|
* redis-cli cluster import support source and target that require auth (#7994)
|
|
|
|
* redis-cli URIs able to provide user name in addition to password (#8048)
|
|
|
|
* redis-cli/redis-benchmark allow specifying the prefered ciphers/ciphersuites (#8005)
|
|
|
|
* redis-cli add -e option to exit with code when command execution fails (#8136)
|
|
|
|
|
|
|
|
Command behavior changes:
|
|
|
|
* EXISTS should not alter LRU (#8016)
|
|
|
|
In Redis 5.0 and 6.0 it would have touched the LRU/LFU of the key.
|
|
|
|
* OBJECT should not reveal logically expired keys (#8016)
|
|
|
|
Will now behave the same TYPE or any other non-DEBUG command.
|
|
|
|
* Improve db id range check for SELECT and MOVE (#8085)
|
|
|
|
Changes the error message text on a wrong db index.
|
|
|
|
* Modify AUTH / HELLO error message (#7648)
|
|
|
|
Changes the error message text when the user isn't found or is disabled.
|
|
|
|
* BITOPS length limited to proto_max_bulk_len rather than 512MB (#8096)
|
|
|
|
The limit is now configurable like in SETRANGE, and APPEND.
|
|
|
|
* GEORADIUS[BYMEMBER] can fail with -OOM if Redis is over the memory limit (#8107)
|
|
|
|
|
|
|
|
Other behavior changes:
|
|
|
|
* Optionally (default) fail to start if requested bind address is not available (#7936)
|
|
|
|
If you rely on Redis starting successfully even if one of the bind addresses
|
|
|
|
is not available, you'll need to tune the new config.
|
|
|
|
* Limit the main db dictionaries expansion to prevent key eviction (#7954)
|
|
|
|
In the past big dictionary rehashing could result in massive data eviction.
|
|
|
|
Now this rehashing is delayed (up to a limit), which can result in performance
|
|
|
|
loss due to hash collisions.
|
|
|
|
* CONFIG REWRITE is atomic and safer, but requires write access to the config file's folder (#7824, #8051)
|
|
|
|
This change was already present in 6.0.9, but was missing from the release
|
|
|
|
notes.
|
|
|
|
* A new incremental eviction mechanism that reduces latency on eviction spikes (#7653)
|
|
|
|
In pathological cases this can cause memory to grow uncontrolled and may require
|
|
|
|
specific tuning.
|
|
|
|
* Not resetting "save" config when Redis is started with command line arguments. (#7092)
|
|
|
|
In case you provide command line arguments without "save" and count on it
|
|
|
|
being disabled, Now the defaults "save" config will kick in.
|
|
|
|
* Update memory metrics for INFO during loading (#7690)
|
|
|
|
* When "supervised" config is enabled, it takes precedence over "daemonize". (#8036)
|
|
|
|
* Assertion and panic, print crash log without generating SIGSEGV (#7585)
|
|
|
|
* Added crash log report on SIGABRT, instead of silently exiting (#8004)
|
|
|
|
* Disable THP (Transparent Huge Pages) if enabled (#7381)
|
|
|
|
If you deliberately enabled it, you'll need to config Redis to keep it.
|
|
|
|
|
|
|
|
Bug fixes:
|
|
|
|
* Handle output buffer limits for module blocked clients (#8141)
|
|
|
|
Could result in a module sending reply to a blocked client to go beyond the
|
|
|
|
limit.
|
|
|
|
* Fix setproctitle related crashes. (#8150, #8088)
|
|
|
|
Caused various crashes on startup, mainly on Apple M1 chips or under
|
|
|
|
instrumentation.
|
|
|
|
* A module doing RM_Call could cause replicas to get nested MULTI (#8097).
|
|
|
|
* Backup/restore cluster mode keys to slots map for repl-diskless-load=swapdb (#8108)
|
|
|
|
In cluster mode with repl-diskless-load, when loading failed, slot map
|
|
|
|
wouldn't have been restored.
|
|
|
|
* Fix oom-score-adj-values range, and bug when used in config file (#8046)
|
|
|
|
Enabling setting this in the config file in a line after enabling it, would
|
|
|
|
have been buggy.
|
|
|
|
* Reset average ttl when empty databases (#8106)
|
|
|
|
Just causing misleading metric in INFO
|
|
|
|
* Disable rehash when Redis has child process (#8007)
|
|
|
|
This could have caused excessive CoW during BGSAVE, replication or AOFRW.
|
|
|
|
* Further improved ACL algorithm for picking categories (#7966)
|
|
|
|
Output of ACL GETUSER is now more similar to the one provided by ACL SETUSER.
|
|
|
|
* Fix bug with module GIL being released prematurely (#8061)
|
|
|
|
Could in theory (and rarely) cause multi-threaded modules to corrupt memory.
|
|
|
|
* Fix cluster redirect for module command with no firstkey. (#7539)
|
|
|
|
* Reduce effect of client tracking causing feedback loop in key eviction (#8100)
|
|
|
|
* Kill disk-based fork child when all replicas drop and 'save' is not enabled (#7819)
|
|
|
|
* Rewritten commands (modified for propagation) are logged as their original command (#8006)
|
|
|
|
* Fix cluster access to unaligned memory (SIGBUS on old ARM) #7958
|
|
|
|
* If diskless repl child is killed, make sure to reap the child pid (#7742)
|
|
|
|
* Broadcast a PONG message when slot's migration is over, may reduce MOVED responses (#7571)
|
|
|
|
|
|
|
|
Other improvements:
|
|
|
|
* TLS Support in redis-benchmark (#7959)
|
|
|
|
* Accelerate diskless master connections, and general re-connections (#6271)
|
|
|
|
* Run active defrag while blocked / loading (#7726)
|
|
|
|
* Performance and memory reporting improvement - sds take control of its internal fragmentation (#7875)
|
|
|
|
* Speedup cluster failover. (#7948)
|
|
|
|
|
|
|
|
Platform / toolchain support related improvements:
|
|
|
|
* Optionally (not by default) use H/W Monotonic clock for faster time sampling (#7644)
|
|
|
|
* Remove the requirements for C11 and _Atomic supporting compiler (#7707)
|
|
|
|
This would allow to more easily build and use Redis on older systems and
|
|
|
|
compilers again.
|
|
|
|
* Fix crash log registers output on ARM. (#8020)
|
|
|
|
* Raspberry build fix. (#8095)
|
|
|
|
* Setting process title support for Haiku. (#8060)
|
|
|
|
* DragonFlyBSD RSS memory sampling support. (#8023)
|
|
|
|
|
|
|
|
New configuration options:
|
|
|
|
* Enable configuring OpenSSL using the standard openssl.cnf (#8143)
|
2021-01-10 21:50:12 +02:00
|
|
|
* oom-score-adj-values config can now take absolute values (besides relative ones) (#8046)
|
2020-12-14 20:54:10 +02:00
|
|
|
* TLS: Add different client cert support. (#8076)
|
|
|
|
* Note that a few other changes listed above added their config options.
|
|
|
|
|
|
|
|
Info fields and introspection changes:
|
|
|
|
* Add INFO fields to track diskless and disk-based replication progress (#7981)
|
|
|
|
* Add INFO field for main thread cpu time, and scrape system time. (#8132)
|
|
|
|
* Add total_forks to INFO STATS (#8155)
|
|
|
|
* Add maxclients and cluster_connections to INFO CLIENTS (#7979)
|
|
|
|
* Add tracking bcast flag and client redirection in client list (#7995)
|
|
|
|
* Fixed INFO client_recent_max_input_buffer includes argv array (#8065, see #7874)
|
|
|
|
* Note that a few other changes listed above added their info fields.
|
|
|
|
|
|
|
|
Module API changes:
|
|
|
|
* Add CTX_FLAGS_DENY_BLOCKING as a unified the way to know if blocking is allowed (#8025)
|
|
|
|
* Add data type callbacks for lazy free effort, and unlink (#7912)
|
|
|
|
* Add data type callback for COPY command (#8112)
|
|
|
|
* Add callbacks for defrag support. (#8149)
|
|
|
|
* Add module event for repl-diskless-load swapdb (#8153)
|
|
|
|
|
|
|
|
Module related fixes:
|
|
|
|
* Moved RMAPI_FUNC_SUPPORTED so that it's usable (#8037)
|
|
|
|
* Improve timer accuracy (#7987)
|
|
|
|
* Allow '\0' inside of result of RM_CreateStringPrintf (#6260)
|
|
|
|
|
|
|
|
|
|
|
|
Thanks to all the users and developers who made this release possible.
|
|
|
|
We'll follow up with more RC releases, until the code looks production ready
|
|
|
|
and we don't get reports of serious issues for a while.
|
|
|
|
|
|
|
|
A special thank you for the amount of work put into this release by:
|
2021-01-10 21:50:12 +02:00
|
|
|
- Oran Agra
|
|
|
|
- Yossi Gottlieb
|
|
|
|
- Filipe Oliveira
|
2021-01-31 17:52:50 +02:00
|
|
|
- Viktor Söderqvist
|
|
|
|
- Guy Benoish
|
|
|
|
- Itamar Haber
|
|
|
|
- Yang Bodong
|
2021-01-10 21:50:12 +02:00
|
|
|
- Madelyn Olson
|
2020-12-14 20:54:10 +02:00
|
|
|
- Wang Yuan
|
|
|
|
- Felipe Machado
|
2021-01-31 17:52:50 +02:00
|
|
|
- Wen Hui
|
2021-01-10 21:50:12 +02:00
|
|
|
- Tatsuya Arisawa
|
|
|
|
- Jonah H. Harris
|
2021-01-31 17:52:50 +02:00
|
|
|
- Raghav Muddur
|
2020-12-14 20:54:10 +02:00
|
|
|
- Jim Brunner
|
2021-01-10 21:50:12 +02:00
|
|
|
- Yaacov Hazan
|
2021-01-31 17:52:50 +02:00
|
|
|
- Allen Farris
|
2020-12-14 20:54:10 +02:00
|
|
|
- Chen Yang
|
|
|
|
- Nitai Caro
|
|
|
|
- Meir Shpilraien
|
|
|
|
- maohuazhu
|
|
|
|
- Valentino Geron
|
2021-01-31 17:52:50 +02:00
|
|
|
- Zhao Zhao
|
2021-01-10 21:50:12 +02:00
|
|
|
- sundb
|
2021-01-31 17:52:50 +02:00
|
|
|
- Qu Chen
|
2021-01-10 21:50:12 +02:00
|
|
|
- George Prekas
|
2020-12-14 20:54:10 +02:00
|
|
|
- Tyson Andre
|
|
|
|
- Michael Grunder
|
|
|
|
- alexronke-channeladvisor
|
2021-01-31 17:52:50 +02:00
|
|
|
- Andy Pan
|
2021-01-10 21:50:12 +02:00
|
|
|
- Wu Yunlong
|
|
|
|
- Wei Kukey
|
2020-12-14 20:54:10 +02:00
|
|
|
- Yoav Steinberg
|
2021-01-10 21:50:12 +02:00
|
|
|
- Greg Femec
|
2021-01-31 17:52:50 +02:00
|
|
|
- Uri Shachar
|
2020-12-14 20:54:10 +02:00
|
|
|
- Nykolas Laurentino de Lima
|
2021-01-10 21:50:12 +02:00
|
|
|
- xhe
|
|
|
|
- zhenwei pi
|
2020-12-14 20:54:10 +02:00
|
|
|
- David CARLIER
|
|
|
|
|
|
|
|
Migrating from 6.0 to 6.2
|
|
|
|
=========================
|
|
|
|
|
|
|
|
Redis 6.2 is mostly a strict superset of 6.0, you should not have any problem
|
|
|
|
upgrading your application from 6.0 to 6.2. However there are some small changes
|
|
|
|
of behavior listed above, please make sure you are not badly affected by any of
|
|
|
|
them.
|
|
|
|
|
|
|
|
Specifically these sections:
|
|
|
|
* Command behavior changes
|
|
|
|
* Other behavior changes
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Cheers,
|
|
|
|
The Redis team
|