Releases: valkey-io/valkey
8.0.5
Upgrade urgency SECURITY: This release includes security fixes we recommend you
apply as soon as possible.
Bug fixes
- Fix clients remaining blocked when reprocessing commands after certain blocking operations (#2109)
- Fix a memory corruption issue in the sharded pub/sub unsubscribe logic (#2137)
- Fix potential memory leak by ensuring module context is freed when
aux_save2
callback writes no data (#2132) - Fix
CLIENT UNBLOCK
triggering unexpected errors when used on paused clients (#2117) - Fix missing NULL check on
SSL_new()
when creating outgoing TLS connections (#2140) - Fix incorrect casting of ping extension lengths to prevent silent packet drops (#2144)
- Fix replica failover stall due to outdated config epoch (#2178)
- Fix incorrect port/tls-port info in
CLUSTER SLOTS
/CLUSTER NODES
after dynamic config change (#2186) - Ensure empty error tables in Lua scripts don't crash Valkey (#2229)
- Fix client tracking memory overhead calculation (#2360)
- Handle divergent shard-id from nodes.conf and reconcile to the primary node's shard-id (#2174)
- Fix pre-size hashtables per slot when reading RDB files (#2466)
Behavior changes
- Trigger election immediately during a forced manual failover (
CLUSTER FAILOVER FORCE
) to avoid delay (#1067) - Reset ongoing election state when initiating a new manual failover (#1274)
Logging and Tooling Improvements
- Add support to drop all cluster packets (#1252)
- Improve log clarity in failover auth denial message (#1341)
Security fixes
- CVE-2025-27151: Check length of AOF file name in valkey-check-aof and reject paths longer than
PATH_MAX
(#2146)
Full Changelog: 8.0.4...8.0.5
Valkey 9.0.0-rc1
Valkey 9.0 release notes
Upgrade urgency levels:
Level | Meaning |
---|---|
LOW | No need to upgrade unless there are new features you want to use. |
MODERATE | Program an upgrade of the server, but it's not urgent. |
HIGH | There is a critical bug that may affect a subset of users. Upgrade! |
CRITICAL | There is a critical bug affecting MOST USERS. Upgrade ASAP. |
SECURITY | There are security fixes in the release. |
Valkey 9.0.0-rc1 - August 14, 2025
Upgrade urgency LOW: This is the first release candidate of Valkey 9.0.0, with
performance improvements, atomic slot migrations, hash field expiration, and numbered databases in cluster mode,
as well as a whole host of new items as listed below.
New Features
- Client Commands Extended Filtering by @sarthakaggarwal97 (#1466)
- Add multi-database support to cluster mode by @xbasel (#1671)
- Support BYPOLYGON option for GEOSEARCH by @KarthikSubbarao (#1809)
- Introduce MPTCP by @pizhenwei (#1811)
- Add sentinel_total_tilt to sentinel INFO sentinel by @carlosfu (#1904)
- Add support for automatic client authentication via TLS certificate fields by @omanges (#1920)
- Add --hotkeys-count option for valkey-cli by @hwware (#1933)
- Introduce atomic slot migration by @murphyjacob4 (#1949)
- Introduce MPTCP for replica by @pizhenwei (#1961)
- Add DELIFEQ command by @LinusU (#1975)
- Allow dynamic modification of io-threads num by @ayush933 (#2033)
- Introduce HASH items expiration by @ranshid (#2089)
- Add SAFE option to SHUTDOWN to reject shutdown in unsafe situations by @enjoy-binbin (#2195)
- Support negative filtering for client command filters by @soloestoy (#2378)
New Configs
- Auto-failover on shutdown unified config by @zuiderkwast (#2292)
Logging and Tooling Improvements
- Add node pfail and fail count to cluster info metrics by @hpatro (#1910)
- Introduce support for lttng based tracing by @artikell (#2070)
Performance/Efficiency Improvements
- Optimize bitcount command by SIMD by @chzhoo (#1741)
- Save RDB file to disk using a background thread on replica(s) (#1784)
- Improve replication stability by prioritizing replication traffic in the replica by @xbasel (#1838)
- Optimize hyperloglog commands with ARM NEON SIMD instructions by @xbasel (#1859)
- Optimize BITCOUNT using ARM NEON SIMD by @xbasel (#1867)
- Optimize string-to-integer performance using AVX512 by @zhulipeng (#1944)
- Improve system responsiveness by limiting number of new cluster link connections per cycle by @hpatro (#2009)
- Optimize hash table performance using SIMD by @zhulipeng (#2030)
- Improve performance of network operations by directly writing responses to clients by @xbasel (#2078)
- Allow shrinking hashtables in low memory situations by @Fusl (#2095)
- Optimize string2ll with load-time CPU feature check using IFUNC resolver by @zhulipeng (#2099)
- Optimize WATCH by equalStringObjects early length check by @vitahlin (#2107)
- Optimize GEORADIUS command performance with pre-allocated buffer by @chzhoo (#2116)
- Improve zcount performance by combing range element ranks calculation with range elements search to @SoftlyRaining (#2129)
- Optimize scan/sscan/hscan/zscan commands by replacing list with vector by @chzhoo (#2160)
Cluster
- Trigger manual failover on SIGTERM / shutdown to cluster primary by @enjoy-binbin (#1091)
- Add CLUSTER FLUSHSLOT command by @wuranxx (#1384)
- Allow replicas to become primaries without data by using CLUSTER REPLICATE NO ONE by @skolosov-snap (#1674)
- Add cluster bus port out of range error message for CLUSTER MEET command by @hwware (#1686)
- Add cluster-manual-failover-timeout to configure the timeout for manual failover by @enjoy-binbin (#1690)
Module
- Add new module API flag to bypass command validation by @sungming2 (#1357)
Bug Fixes
- Avoid shard id update of replica if it doesn't match with primary shard id by @hpatro (#573)
- Change "Redis ver." to "Valkey ver." in LOLWUT output by @sarthakaggarwal97 (#1559)
- Fix temp file leak during replication error handling by @enjoy-binbin (#1721)
- Fix raxRemove crash at memcpy() due to key size exceeds max Rax size by @VoletiRam (#1722)
- Respect process umask when creating data files by @kronwerk (#1725)
- Fix error "SSL routines::bad length" when connTLSWrite is called second time with smaller buffer by @zori-janea (#1737)
- cmd's out bytes need count deferred reply by @soloestoy (#1760)
- Enable TCP_NODELAY by default in incoming and outgoing connections by @sungming2 (#1763)
- Ignore stale gossip packets that arrive out of order by @enjoy-binbin (#1777)
- Remove unicode optimization in Lua cjson library by @rjd15372 (#1785)
- Save config file and broadcast PONG message on configEpoch change by @enjoy-binbin (#1813)
- Fix engine crash on module client blocking during keyspace events by @yairgott (#1819)
- Fix bug where invalidation messages were getting sent to closing clients by @madolson (#1823)
- Fix ACL LOAD crash on replica since the primary client don't has a user by @bogdanp05 (#1842)
- Fix RANDOMKEY infinite loop during CLIENT PAUSE by @li-benson (#1850)
- Improve clarity of errors for GEO commands when member does not exist by @chx9 (#1943)
- Fix panic in primary when blocking shutdown after previous block with timeout by @murphyjacob4 (#1948)
- fix cluster slot stats assertion during promotion of replica by @Fusl (#1950)
- Fix incorrect lag reported in XINFO GROUPS by @nesty92 (#1952)
- Fix crash during TLS handshake with I/O threads by @uriyage (#1955)
- Disallow sending REPLY ON / OFF / SKIP inside a multi-exec transaction by @sarthakaggarwal97 (#1966)
- Fix random element in skewed sparse hash table by @zuiderkwast (#2085)
- Allow mixing quoted and unquoted inline args by @Fusl (#2098)
- Only mark the client reprocessing flag when unblocked on keys by @ranshid (#2109)
- CLIENT UNBLOCK should't be able to unpause paused clients by @enjoy-binbin (#2117)
- Fix memory corruption in sharded pubsub unsubscribe by @uriyage (#2137)
- Detect SSL_new() returning NULL in outgoing connections by @zuiderkwast (#2140)
- Correctly handle large cluster bus extensions which may have resulted in dropped cluster packets by @madolson (#2144)
- Converge divergent shard-id persisted in nodes.conf to primary's shard ID by @hpatro (#2174)
- Fix replica can't finish failover when config epoch is outdated by @enjoy-binbin (#2178)
- Fix CLUSTER SLOTS/NODES showing wrong port after updating port/tls-port by @enjoy-binbin (#2186)
- Fix use-after-free when active expiration triggers hashtable to shrink by @gusakovy (#2257)
- Redact user data when a module crashes for not handling I/O errors enabled by @YueTang-Vanessa (#2274)
- Generate a new shard_id when the replica executes CLUSTER RESET SOFT by @enjoy-binbin (#2283)
- Fix missing response when AUTH returns an error inside a transaction by @enjoy-binbin (#2287)
- Fix memory leak when shrinking a hashtable without entries by @yzc-yzc (#2288)
- Fix MEMORY USAGE to consider embedded keys by @yulazariy (#2290)
- Fix replicas claiming to still have slots after manual failover by @enjoy-binbin (#2301)
- Prevent bad memory access when NOTOUCH client gets unblocked by @uriyage (#2347)
- Fix large allocations crashing Valkey during active defrag by @Fusl (#2353)
Build and Tooling
- Support for RDB analysis reports by @artikell (#1743)
- Implement RPS control for valkey-benchmark by @artikell (#1761)
- valkey-cli: ensure output ends with a newline if missing when printing reply by @xbasel (#1782)
- Drop lua object files on clean by @secwall (#1812)
- Check both arm64 and aarch64 for ARM based system architecture by @eifrah-aws (#1829)
- Add --sequential option to valkey-benchmark to support populating entire keyspace by @SoftlyRaining (#1839)
- Support environment variable VALKEYCLI_AUTH alongside REDISCLI_AUTH in valkey-cli by @HiranmoyChowdhury (#1995)
- Add MGET test to valkey-benchmark by @zuiderkwast (#2015)
- Add support to send multiple arbitrary commands to valkey-benchmark by @zuiderkwast (#2057)
- Support RDMA for valkey-cli and benchmark by @pizhenwei (#2059)
- Support MPTCP for valkey-cli and benchmark by @pizhenwei (#2067)
- Allow valkey-benchmark to support multiple random (or sequential) placeholders by @SoftlyRaining (#2102)
- Change default values of valkey-cli to use valkey naming, and added fallback to old values by @avifenesh (#2334)
- Fix duplicate Acks for RDMA events and fix extremely large max latency for RDMA benchmark (#2430)
Behavior Change
- Move auth check to the front, before command exist/arity/protected check by @enjoy-binbin (#1475)
- Include command fullname in error message when returning errors in multi-execs by @enjoy-binbin (#2286)
- Add STALE command flag to SCRIPT-EXISTS, SCRIPT-SHOW and SCRIPT-FLUSH by @enjoy-binbin (#2419)
Contributors
- Ran Shidlansik @ranshid
- Binbin @enjoy-binbin
- Jacob Murphy @murphyjacob4
- Madelyn Olson @madolson
- YueTang-Vanessa @YueTang-Vanessa
- cxljs @cxljs
- Sarthak Aggarwal @sarthakaggarwal97
- amanosme @amanosme
- Hanxi Zhang @hanxizh9910
- Seungmin Lee @sungming2
- uriyage @uriyage
- Katie Holly @Fusl
- Nicky-2000 @Nicky-2000
- Allen Samuels @allenss-amazon
- yzc-yzc @yzc-yzc
- zhaozhao.zz @soloestoy
- asagegeLiu @asagege
- nitaicaro @nitaicaro
- Matthew @utdrmac
- Omkar Mestry @omanges
- Viktor Söderqvist @zuiderkwast
- kukey @kukey
- Harkrishn Patro @hpatro
- Avi Fenesh @avifenesh
- Amit Nagler @naglera
- Josh Soref @jsoref
- youngmore1024 @youngmore1024
- Rain Valentine @SoftlyRaining
- skyfirelee @artikell
- Wen Hui @...
8.1.3
Upgrade urgency SECURITY: This release includes security fixes we recommend you
apply as soon as possible.
Bug fixes
- Fix missing response when AUTH is errored inside a transaction (#2287)
Security fixes
Valkey patch release 8.0.4
Valkey patch release 7.2.10
Upgrade urgency SECURITY: This release includes security fixes we recommend you
apply as soon as possible.
Bug fixes
- Fix a bug that allowed clients to process commands when the server has paused command processing (#2231)
- Fix a crash when a module attempts to write auxiliary data with AOF enabled (#2132)
- Fix a bug where the engine may crash when establishing new outbound TLS connections (#2140)
- Fix a bug where a cluster bus packet may be incorrectly marked as invalid (#2144)
- Fix a bug where CLUSTER SLOTS/NODES information can be stale after updating node port/tls-port (#2186)
- Fix a bug where replica in cluster mode can't finish failover when config epoch is outdated (#2232)
- Fix a bug to avoid CLIENT UNBLOCK command to unblock paused clients (#2117)
Security fixes
8.1.2
Upgrade urgency HIGH: This release includes CVE fix for valkey-check-aof tool, we recommend you
apply as soon as possible if you use the tool.
Security fixes
- CVE-2025-27151 Check length of AOF file name in valkey-check-aof (#2146)
Bug fixes
- Properly escape double quotes and backslash in
MONITOR
command (#2036) - Fix high CPU usage when fetching a random element in skewed sparse hash table (#2085)
- Fix a bug that allowed clients to process commands when the server has paused command processing (#2109)
- Fix a crash where the wrong slot is used when processing sharded pubsub unsubscribe events (#2137)
- Fix a crash when a module attempts to write auxiliary data with AOF enabled (#2132)
- Fix a bug where the engine may crash when establishing new outbound TLS connections (#2140)
- Fix a bug where a cluster bus packet may be incorrectly marked as invalid (#2144)
- Fix a bug where CLUSTER SLOTS/NODES information can be stale after updating node port/tls-port (#2186)
- Fix a bug where replica in cluster mode can't finish failover when config epoch is outdated (#2178)
- Fix a bug to avoid CLIENT UNBLOCK command to unblock paused clients (#2117)
Full Changelog: 8.1.1...8.1.2
8.1.1
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
Security fixes
- (CVE-2025-21605) Limit output buffer for unauthenticated clients (#1994)
Bug fixes
- Fix the build on less common platforms in zmalloc.c (#1922)
- fix: add samples to stream object consumer trees (#1825)
- Fix crash during TLS handshake with I/O threads (#1955)
- Fix cluster slot stats assertion during promotion of replica (#1950)
- Fix panic in primary when blocking shutdown after previous block with timeout (#1948)
- Ignore stale gossip packets that arrive out of order (#1777)
- Fix incorrect lag reported in XINFO GROUPS (#1952)
- Fix engine crash on module client blocking during keyspace events (#1819)
- Avoid shard id update of replica if not matching with primary shard id (#573)
- Only enable defrag for vendored jemalloc (#1985)
- Allow scripts to support null characters again (#1984)
Full Changelog: 8.1.0...8.1.1
8.0.3
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
Security fixes
- (CVE-2025-21605) Limit output buffer for unauthenticated clients (#1993)
Bug fixes
- Optimize RDB load performance and fix cluster mode resizing on replica side (#1199)
- Fix memory leak in forgotten node ping ext code path (#1574)
- Fix cluster info sent stats for message with light header (#1563)
- Fix module LatencyAddSample still work when latency-monitor-threshold is 0 (#1541)
- Fix potential crash in radix tree recompression of huge keys (#1722)
- Fix error "SSL routines::bad length" when connTLSWrite is called second time with smaller buffer (#1737)
- Fix temp file leak druing replication error handling (#1721)
- Fix ACL LOAD crash on replica since the primary client don't has a user (#1842)
- Fix RANDOMKEY infinite loop during CLIENT PAUSE (#1850)
- fix: add samples to stream object consumer trees (#1825)
- Fix cluster slot stats assertion during promotion of replica (#1950)
- Fix panic in primary when blocking shutdown after previous block with timeout (#1948)
- Ignore stale gossip packets that arrive out of order (#1777)
- Fix incorrect lag reported in XINFO GROUPS (#1952)
- Avoid shard id update of replica if not matching with primary shard id (#573)
Full Changelog: 8.0.2...8.0.3
7.2.9
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
Security fixes
- (CVE-2025-21605) Limit output buffer for unauthenticated clients (#1992)
Bug fixes
- Fix defrag crash when using FLUSHDB ASYNC in cluster mode (#1873)
- Fix memory leak in forgotten node ping ext code path (#1576)
- Fix module LatencyAddSample still work when latency-monitor-threshold is 0 (#1541)
- Fix potential crash in radix tree recompression of huge keys (#1722)
- Fix error "SSL routines::bad length" when connTLSWrite is called second time with smaller buffer (#1737)
- Fix RANDOMKEY infinite loop during CLIENT PAUSE (#1850)
- fix: add samples to stream object consumer trees (#1825)
- Fix panic in primary when blocking shutdown after previous block with timeout (#1948)
- Fix incorrect lag reported in XINFO GROUPS (#1952)
Full Changelog: 7.2.8...7.2.9
8.1.0
Valkey 8.1 release notes
Upgrade urgency levels:
LOW: No need to upgrade unless there are new features you want to use.
MODERATE: Program an upgrade of the server, but it's not urgent.
HIGH: There is a critical bug that may affect a subset of users. Upgrade!
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
SECURITY: There are security fixes in the release.
Valkey 8.1.0 GA - Released Mon 31 March 2025
Upgrade urgency LOW: This is the first release of Valkey 8.1,
a minor version update designed to further enhance performance, reliability, observability and usability
over Valkey 8.0 for all Valkey installations. This release is fully compatible with all previous Valkey releases
as well as Redis OSS 7.2.4.
Behavior Changes
- Hide input buffer data from being logged on protocol error when hide-user-data-from-log is enabled (#1889)
Bug fixes
- Fix a bug in VM_GetCurrentUserName which leads to engine crash when no valid username provided (#1885)
Valkey 8.1.0 RC2 - Released Thu 20 March 2025
Upgrade urgency LOW: This is the second release candidate of Valkey 8.1, with several bug fixes,
control on manual-failover timeout and expended module API to reduce module executed commands overhead.
Performance/Efficiency Improvements - Core
- Optimize bitcount command by using x86 SIMD instructions (#1741)
- Embed hash value in hash data type entries to reduce memory footprint (#1579)
Cluster modifications
- Add cluster-manual-failover-timeout configuration to control the timeout for manual failover (#1690)
- Improve error message reporting when invalid port is provided for cluster meet command. (#1686)
- broadcast epoch ASAP when configEpoch changed (#1813)
Module Improvements
- Add new module API flag to bypass command validation in order to reduce processing overhead (#1357)
Behavior Changes
- Enable TCP_NODELAY for engine initiated cluster and replication connections (#1763)
Bug Fixes
- Fix
ACL LOAD
crash on a connected replica node (#1842) - Fix bug where no tracking-redir-broken is issued when the redirect client is in the process of getting closed. (#1823)
- Fix replica sometimes disconnecting when replication is using TLS. (#1737)
- Fix file descriptor leak when aborting dual channel replication due to error (#1721)
- Fix rax crash when using keys larger than 512MB (#1722)
- Fix RANDOMKEY command leading to infinite loop during when all CLIENT are PAUSED and all keys are with expiry (#1850)
- Removing unicode optimization in Lua cjson library to avoid OOM when very large strings are used. (#1785)
- Fix update large-reply in COMMANDLOG when reply is deferred (#1760)
- Avoid setting TCP/TLS specific options for UNIX Domain Socket connections (#1706)
- Fix a bug in the valkey-cli which would incorrectly render commands with text output in multi/exec (#1782)
Build and Packaging changes
- Check both arm64 and aarch64 for ARM based system architecture during CMake builds (#1829)
- Cleanup lua object files on make distclean (#1812)
- Fixed build error with CMake when using clang v19 (#1806)
Valkey 8.1.0 RC1 - Released Thu 11 Feb 2025
Upgrade urgency LOW: This is the first release candidate of Valkey 8.1, with
performance improvements, extended observability and cluster improvements and different bug fixes.
It includes a new implementation of the Valkey dictionary which is more memory and cache efficient,
better performance for encryption in transit, reduced replication overhead by offloading work to I/O threads,
faster failover support in cluster mode, major improvements to the active defrag process to reduce the impact on command processing,
different API changes for improved usability and ability to track large requests and replies.
Valkey now supports new new check-and-set feature for native STRINGs.
API and Interface changes
- Introduce cancel argument to bgsave command (#757)
- Add conditional update support to the
SET
command usingIFEQ
argument (#1324) - Add more filters to
CLIENT LIST
(#1401) - Add
availability_zone
to the HELLO response (#1487)
Observability and Monitoring changes
- Extend
LATENCY LATEST
to add sum / cnt stats (#1570) - Add
paused_actions
andpaused_timeout_milliseconds
forINFO CLIENTS
(#1519) - Add paused_reason to
INFO CLIENTS
(#1564) - Added
COMMANDLOG
to record slow executions and large requests/replies (#1294) - Fix cluster info sent stats for message with light header (#1563)
- Add latency stats around cluster config file operations (#1534)
- Add new flag in
CLIENT LIST
for import-source client (#1398) - Show client capabilities in
CLIENT LIST
/CLIENT INFO
(#1698)
Performance/Efficiency Improvements - Core
- Introduce a new memory efficient hash table to store keys (#1186)
- Accelerate hash table iterator with prefetching (#1501)
- Accelerate hash table iterator with value prefetching (#1568)
- Replace dict with new hashtable: hash datatype (#1502)
- Replace dict with new hashtable for sets datatype (#1176)
- Replace dict with new hashtable: sorted set datatype (#1427)
- Free strings during BGSAVE/BGAOFRW to reduce copy-on-write (#905)
- Create an empty lua table with specified initial capacity as much as possible (#1092)
- Move prepareClientToWrite out of loop for HGETALL command (#1119)
- Improved hashing algorithm for Lua tables (#1168)
- Replace dict with new hashtable for sets datatype (#1176)
- Do security attack check only when command not found to reduce the critical path. (#1212)
- Trim free space from inline command argument strings to avoid excess memory usage (#1213)
- Increase the max number of io threads to 256. (#1220)
- Refactor of ActiveDefrag to reduce latencies (#1242)
- Integrate fast_float to optionally replace strtod (#1260)
- Improvements for TLS with I/O threads (#1271)
- Optimize PFCOUNT, PFMERGE command by SIMD acceleration (#1293)
- Optimize sdscatrepr by batch processing printable characters (#1342)
- Optimize ZRANK to avoid path comparisons (#1389)
- Move clientCron onto a separate timer (#1387)
- Client struct: lazy init components and optimize struct layout (#1405)
- Offload reading the replication stream to IO threads (#1449)
- Skip CRC checksumming during diskless full sync with TLS enabled. (#1479)
New/Modified configurations
- Deprecate
io-threads-do-reads
, which has no effect since io threads will now always do reads. (#1138) - Introduce
import-mode
config to avoid expiration and eviction during data syncing (#1185) - Introduce new
rdb-version-check
config which allows for relaxed RDB version verification (#1604) - Deprecate
dynamic-hz
, since server cron jobs are handled dynamically by default (#1387) - Introduce
log-format
andlog-timestamp-format
to control the log format (#1022) - Introducing
active-defrag-cycle-us
for more fine-grinned control of memory defragmentation run time (#1242) - Introduce new configurations to control the new
COMMANDLOG
reporting thresholds (#1294)
Build and Packaging changes
- Introduce CMake build system for valkey (#1196)
- RDMA builtin support (#1209)
- Fix Valkey binary build workflow, version support changes. (#1429)
- Remove Valkey specific changes in jemalloc source code (#1266)
Module Improvements
- Add API UpdateRuntimeArgs for updating the module arguments during runtime (#1041)
- Add support for MustObeyClient Module API (#1582)
- Adds support for scripting engines as Valkey modules (#1277, #1497)
Cluster improvements
- Do election in order based on failed primary rank to avoid voting conflicts (#1018)
- Make replica
CLUSTER RESET
flush async based onlazyfree-lazy-user-flush
(#1190) - Trigger the election as soon as possible when doing a forced manual failover (#1067)
- Make manual failover reset the on-going election to promote failover (#1274)
- Broadcast a PONG to all node in cluster when role changed (#1295)
- Manual failover vote is not limited by two times the node timeout (#1305)
- Automatic failover vote is not limited by two times the node timeout (#1356)
Behavior Changes
- Streams use an additional 8 bytes to track their internal size (#688)
- Take hz into account in activerehashing to avoid CPU spikes (#977)
- Incr
expired_keys
if the expiration time is already expired (#1517) - Fix replica not able to initiate election in time when epoch fails (#1009)
- Make
FUNCTION RESTORE FLUSH
flush async based onlazyfree-lazy-user-flush
(#1254) - Allow
MEMORY MALLOC-STATS
andMEMORY PURGE
during loading phase (#1317) - Use
DEEPBIND
flag when loading external modules in order to avoid symbol conflicts (#1703)
Logging and Tooling Improvements
- Remove the restriction that cli --cluster create requires at least 3 primary nodes (#1075)
- Add short client info log to CLUSTER MEET / FORGET / RESET commands (#1249)
- Support for reading from replicas in valkey-benchmark (#1392)
- valkey-cli will now re-select previously selected database after reconnect (#1694)
- valkey-cli will now auto-exit from subscribed mode when there are no more active subscriptions (#1432)
Bug Fixes
- Mark the node as FAIL when the node is marked as NOADDR and broadcast the FAIL (#1191)
- [Bug Fix] Optimize RDB Load Performance and Fix C...