Redis 8.6
What's new in Redis 8.6
Redis 8.6 builds on the foundation of Redis 8.4 with significant enhancements to stream reliability, memory management, and security features.
This release delivers major improvements across multiple areas:
- Stream idempotency with at-most-once delivery guarantees
- New eviction policies for least recently modified data
- Hot key detection and reporting capabilities
- TLS certificate-based automatic client authentication
- Enhanced time series support with NaN values and new aggregators
- Substantial memory reduction for hashes and sorted sets
- Keys memory size histograms for better monitoring
- More than 20 performance and resource utilization improvements
Below is a detailed breakdown of these updates.
Security improvements
Redis 8.6 includes important security and privacy enhancements:
- Privacy protection: Personally identifiable information is now hidden from ACL logs and server logs across Redis core and modules.
- ACL security fix: Fixed key-pattern bypass vulnerability in
MSETEXcommand. - Module security: Addressed out-of-bounds read vulnerability when loading invalid RDB files in RedisBloom.
New features
Stream idempotency
Redis 8.6 introduces powerful idempotency features for Redis Streams that provide at-most-once delivery guarantees:
- IDMPAUTO argument: Automatically generates idempotent identifiers for
XADDoperations. - IDMP argument: Allows manual specification of idempotent identifiers.
These features prevent duplicate entries in streams, making Redis Streams more reliable for critical data processing pipelines where duplicate processing could cause issues.
Enhanced memory management
Redis 8.6 introduces new eviction policies that provide more granular control over memory management:
- volatile-lrm: Evicts keys with expiration times based on least recently modified criteria.
- allkeys-lrm: Evicts any keys based on least recently modified criteria.
These policies complement existing LRU (Least Recently Used) policies by focusing on modification patterns rather than access patterns, providing better control for write-heavy workloads.
Hot key detection
The new HOTKEYS commands enable real-time detection and reporting of frequently accessed keys. This feature helps identify performance bottlenecks and optimize data distribution in clustered environments.
TLS certificate-based authentication
Redis 8.6 introduces automatic client authentication using TLS certificates. This feature streamlines secure connections by automatically mapping TLS certificates to Redis users, reducing the need for password-based authentication in certificate-enabled environments.
Enhanced time series capabilities
Redis 8.6 extends time series functionality with:
- NaN value support: Time series can now store and process Not-a-Number values for incomplete or invalid data points.
- New aggregators:
COUNTNANandCOUNTALLaggregators provide better analytics for datasets containing NaN values.
Memory monitoring and analytics
Redis 8.6 introduces advanced memory monitoring capabilities:
- Keys memory size histograms: Collect detailed memory consumption histograms per data type to better understand memory usage patterns.
- Per-slot statistics: New cluster slot statistics provide insights into resource consumption across cluster nodes.
Improvements
Redis 8.6 delivers substantial performance improvements across core operations and data structures.
Performance optimizations
- Reply optimization: Copy-avoidance path reduces memory copies for bulk string replies and optimized list node allocation.
- Data structure improvements: Hash and sorted set operations benefit from unified field/value and score/value structures, delivering substantial memory reduction.
- Iterator optimization: Improved listpack iterator performance for hash field operations.
- Command optimization: Enhanced
ZRANK,XREADGROUP CLAIMperformance and optimized set commands with expiration. - Prefetching enhancements: Improved prefetching logic and sizing algorithms.
- Hardware utilization: ARM AArch64 systems now utilize hardware clocks by default for better performance.
- ACL optimization: Optimized user ACL permission verification for faster access control.
- Vector operations: Enhanced vector set operations with optimized distance calculations for Intel, AMD, and ARM architectures.
- System efficiency: Reduced per-command syscalls by reusing cached time when hardware monotonic clock is available.
Replication improvements
- Diskless replication: RDB compression is now disabled during diskless replication to improve transfer speeds.
- Configuration flexibility: New
flushdboption forrepl-diskless-loadprovides better control over dataset handling during replication.
Configuration enhancements
Redis 8.6 introduces new configuration parameters that provide greater control over system behavior:
- Stream idempotency:
stream-idmp-durationandstream-idmp-maxsizecontrol default settings for idempotent stream production. - TLS authentication:
tls-auth-clients-userenables certificate-based automatic client authentication. - Memory policies: Support for new
volatile-lrmandallkeys-lrmeviction policies. - Cluster monitoring:
cluster-slot-stats-enabledenables per-slot resource consumption statistics collection. - Memory analytics:
key-memory-histogramsenables collection of memory consumption histograms per data type.
Modules API enhancements
Redis 8.6 extends the modules API with new key metadata capabilities:
- RM_CreateKeyMetaClass: Define new key-metadata classes for custom data organization.
- RM_ReleaseKeyMetaClass: Release key-metadata classes when no longer needed.
- RM_SetKeyMeta: Attach or update metadata values for keys under specific metadata classes.
- RM_GetKeyMeta: Retrieve metadata values for keys under specific metadata classes.
These APIs enable module developers to associate custom metadata with Redis keys, opening new possibilities for advanced data management and analytics.
Enhanced monitoring and metrics
Redis 8.6 introduces new metrics that provide deeper insights into system behavior:
- Memory distribution metrics: New metrics (
db0_distrib_lists_sizes,db0_distrib_sets_sizes,db0_distrib_hashes_sizes,db0_distrib_zsets_sizes) provide detailed memory usage distribution across different data types. - TLS authentication metrics:
acl_access_denied_tls_certtracks failed TLS certificate-based authentication attempts for security monitoring.
Component versions
Redis 8.6 continues the unified distribution approach, delivering all functionality in a single Redis Open Source package without separate modules. This includes:
- RedisTimeSeries: Enhanced with NaN value support and new aggregation functions.
- RedisBloom: Improved security with RDB loading fixes and atomic slot migration support.
- RedisJSON: Better privacy protection and enhanced atomic slot migration capabilities.
Known limitations
When using Redis 8.6, be aware of these current limitations:
-
Redis Query Engine: During load rebalancing operations (such as Atomic Slot Migration), cursors may miss some results due to data movement between nodes.
-
Stream idempotency: Avoid using
XADDwith the newIDMPorIDMPAUTOoptions when usingappendonly yeswithaof-use-rdb-preamble no(non-default configuration). This limitation will be removed in the next patch release.