redis 8.12-rc3
redis 8.12-rc3
This is the third Release Candidate of Redis 8.12 in Redis Open Source.
Release Candidates are feature-complete pre-releases. Pre-releases are not suitable for production use.
Security fixes
- #16127 A TLS session could be resumed on another listener (client port vs. cluster bus), or after
tls-auth-clientsortls-expected-peer-namechanged, without the checks of the new settings
New Features
- #16135 New commands:
ZMOVE,BZMOVE,ZMOVEMEMBERto atomically move members between sorted sets - from either end, by score range, or by name - withCOUNTbatching andNX/XXdestination conditions - #15907
SLOWLOG GETnow reports the CPU time of each slow command (a new 8th field), to tell commands that ran slowly apart from commands that were starved of CPU; New configuration parameter:off-cpu-tracking
Modules API
- #16105
RedisModule_GetUsedMemoryRatioEstimate- likeRedisModule_GetUsedMemoryRatio, but can be called from module threads without holding the GIL
Bug fixes
- #16098 A replica that fell behind by more than its output buffer soft limit was disconnected even when
repl-backlog-sizewas larger - #16176 Keys could be lost during atomic slot migration when the destination rejected a command (e.g.
-NOREPLICASdue tomin-replicas-to-write) - #16210 Set members could be expired incorrectly on the destination during atomic slot migration
- #16096
MSETEXwith repeatedEXorPXoptions was propagated to replicas and the AOF as an invalid command, losing the keys - #16175 Commands could be replayed twice on AOF load when an AOF rewrite started after an AOF write error (e.g. disk full)
- #15955
XADDentries withIDMPcould be lost on AOF replay or on a lagging replica, andXIDMPRECORDcould crash a lagging replica - #15930 Consumers created by
XCLAIMorXAUTOCLAIMthat claimed no entries were not propagated to replicas or the AOF - #16121 Some key updates could apply the value or TTL to a different key while the keyspace was being resized
- #16042 Redis could crash with
io-threads> 1 when running module commands that usegetkeys-apiorgetchannels-api - #16165 Redis could crash when a module read a sorted set emptied by
ZPOPMIN/ZPOPMAXfrom its keyspace notification - #16125
ZRANGESTOREwith the same source and destination key could cause a use-after-free whenkey-memory-histogramsorcluster-slot-stats-enabledis enabled - #16167
ZRANGESTOREcould create a sorted set with a broken score order when the source was a listpack loaded from an unordered payload - #16164 A sorted set restored without
sanitize-dump-payloadcould store a duplicate member twice after its conversion to the B+tree encoding - #16146 A malformed
RESTOREpayload or RDB file could corrupt memory (only with modules that register key metadata classes) - #16142
CONFIG GETandCONFIG REWRITEdropped then,oandcflags ofnotify-keyspace-eventswhenAwas set, so these events stopped after a restart - #16120
DELEXhonoredlazyfree-lazy-server-delinstead oflazyfree-lazy-user-del - #16203 Lua scripts with very deep string patterns could exhaust the stack; such patterns now fail with
pattern too complex - #16233 Redis could crash when using
preload-filewith AOF and a working directory of 1024 bytes or longer - #16062 On FreeBSD, the bundled jemalloc took over libc’s malloc hooks, which could crash multi-threaded tools (e.g.
redis-benchmark --threads) and deadlock afterfork() - #16117
redis-clicould generate excessive help entries from aCOMMANDreply with extreme arity values - #15823
redis-cli --keystatsprinted empty statistics when no keys were found
Performance and resource utilization improvements
- #15622
SORTandSORT_ROno longer convert listpack-encoded sorted sets to B+tree, which increased their memory usage (also on read-only replicas) - #16163
ZADDthat converts a sorted set to B+tree no longer leaves an oversized member index, which wasted memory and slowedZSCAN - #16069 Client memory (
tot-mem,mem_clients_normal,maxmemory-clients) now includes the names of watched keys and of Pub/Sub channels and patterns - #16126 Faster
ZRANGESTOREfor largeREVrank ranges - #16156 Faster
ZRANDMEMBERwith a large positive count on B+tree sorted sets - #15420 Faster
SRANDMEMBERwith a positive count on hashtable-encoded sets - #15901 Faster
HEXPIREandHSETEXupdates of field expiration on listpack-encoded hashes
Source redis/redis ·
8.12-rc3· 2026-11-12 · upstream release
Mirrored verbatim for indexing. All rights belong to the upstream project.
Release notes are published by the upstream project and mirrored here for indexing. All rights belong to their authors.