What's New in Redis 8.6
Redis 8.6 (starting with the RC1 release candidate) delivers a set of useful enhancements focused on reliability, performance, security, and better observability. This version introduces idempotent operations for streams, fresh eviction policies based on last modification time, built-in hot key detection, automatic TLS certificate authentication for clients, plus targeted improvements in time series handling like NaN value support. It also includes many internal optimizations to reduce memory usage and speed up common operations, along with privacy fixes and bug resolutions across core and modules.
While this is still a pre-release (feature-complete RC), it prepares the ground for a stable production version with stronger tools for high-throughput and secure environments.
New Features
Several practical new capabilities make Redis easier and safer to use in demanding scenarios:
- Streams now support idempotent additions via the
XADDcommand with new optionsIDMPAUTOandIDMP. This gives at-most-once delivery guarantees, which is great for avoiding duplicates in high-availability setups. - Two new eviction policies:
volatile-lrmandallkeys-lrm(least recently modified). These help when you want to prioritize evicting keys based on modification recency rather than access time. - New
HOTKEYScommand to identify and report hot keys in real time, helping troubleshoot performance bottlenecks caused by heavily accessed keys. - Automatic client authentication using TLS certificates -- no extra username/password needed when certificates are properly configured.
- In RedisTimeSeries: full support for
NaNvalues in series data, plus new aggregation functionsCOUNTNANandCOUNTALLfor more flexible analytics over time series that may contain missing or invalid points.
Performance & Memory Optimizations
A large number of internal improvements reduce overhead and make Redis run faster and leaner:
- Avoid unnecessary memory copies when sending bulk string replies.
- Unified data structures in hashes (field name + value in one struct) and sorted sets (score + value in one struct) for better cache efficiency.
- Faster iteration over hash fields stored in listpack format.
- Optimized handling of sets with expiration, prefetching logic, and the
ZRANKcommand. - Default use of hardware clock on ARM AArch64 platforms for better timing accuracy.
- Disabled RDB compression during diskless replication to speed up the process.
These changes collectively lower CPU and memory pressure, especially under heavy load or on resource-constrained hardware.
Security & Privacy Enhancements
Redis 8.6 tightens privacy and fixes potential leaks:
- Personally identifiable information is now hidden from ACL logs, server logs (in core + modules like RedisTimeSeries, RedisJSON, RedisBloom), and other outputs.
- Fixed an ACL key-pattern bypass vulnerability in the
MSETEXcommand. - Addressed an out-of-bounds read risk when loading invalid RDB files in RedisBloom.
Bug Fixes & Stability Improvements
Many issues have been resolved to make the server more reliable:
- Fixed AOF loading problems when ACL rules block commands inside
MULTI/EXEC. - Corrected behavior in atomic slot migration, including proper handling of adjacent slots and delayed trimming.
- Streams fixes around
XTRIM,XADDapprox mode, and interactions after group destruction. - Restored original
SCANfilter order (reverting an earlier change). - Prevented rare hangs at shutdown, panics on uninitialized cluster nodes, and long blocks during
FLUSHALL ASYNCon replicas. - Module-specific: atomic slot migration support added to RedisTimeSeries, RedisJSON, RedisBloom; corrected
MEMORY USAGEreporting in RedisBloom; fixed escaping andJSON.CLEARmulti-path behavior in RedisJSON.
New Configuration & Observability
New options give more control:
stream-idmp-durationandstream-idmp-maxsizefor tuning idempotent stream behavior.tls-auth-clients-userto enable certificate-based auth.flushdboption inrepl-diskless-loadto always clear the dataset before diskless loading.- New metric
acl_access_denied_tls_certto monitor failed certificate authentications.
Modules API gains key metadata management functions: RM_CreateKeyMetaClass, RM_ReleaseKeyMetaClass, RM_SetKeyMeta, RM_GetKeyMeta.
Upgrade Notes
This is a release candidate -- test thoroughly in non-production environments first. No major breaking changes are listed, but review new eviction policies, streams idempotency defaults, and TLS auth setup if you plan to use them. Check module compatibility (especially RedisTimeSeries, RedisJSON, RedisBloom) and look at known limitations like possible missing results in Redis Query Engine during active load rebalancing / atomic slot migration with open cursors.
Redis 8.6 was validated on recent Linux distributions (Ubuntu 22.04/24.04, Rocky/AlmaLinux 8/9/10, Debian 12/13) and macOS 14/15.