What Is New in Redis 6.0
Redis 6.0 introduces major enhancements focused on security, performance, and protocol evolution. This version marks a significant step forward for production deployments.
| Category | Key Changes |
|---|---|
| New Features | ACL (Access Control List), SSL/TLS encryption, Client-side caching, Threaded I/O, RESP3 protocol, Redis Cluster proxy. |
| Improvements | Faster RDB loading, better replication performance, improved memory reporting, enhanced LRU eviction. |
| Protocol | New RESP3 protocol for richer client-server interactions and semantic replies. |
| Modules | Background and timedout callbacks for modules, new APIs for cluster and keyspace notifications. |
How does ACL improve Redis security?
ACL brings user-based permission control to Redis. You can now define users with specific passwords and limit their commands and key access patterns.
In practice, this means separating administrative from application access. A client can only run commands its user is allowed to, like read-only access to a specific key pattern. This is a fundamental shift from the old single-password model.
Example ACL rule
ACL SETUSER appuser on >apppassword ~app:* +get +set
What performance gains come from Threaded I/O?
Threaded I/O allows Redis to handle socket reads/writes and protocol parsing in multiple threads, while command execution remains single-threaded.
This matters because it tackles a core bottleneck: network I/O under high concurrent load. You'll see the biggest benefit on multi-core machines with many simultaneous connections, reducing latency for clients.
Why should I care about the RESP3 protocol?
RESP3 is the new Redis Serialization Protocol version. It provides more semantic replies, making client development simpler and enabling advanced features like client-side caching.
Instead of getting everything as a bulk string, clients can distinguish between maps, sets, or attributes. This allows for smarter client libraries that understand data types directly from the protocol layer.
How does client-side caching work?
This feature lets clients cache values locally. Redis tracks which keys a client reads and sends invalidation messages when those keys are modified.
You enable it using the new CLIENT TRACKING command. In practice, it drastically reduces read latency and server load for frequently accessed, rarely changed data. The invalidation is connection-aware, so it's efficient.
Is TLS now natively supported?
Yes, Redis 6.0 includes built-in support for SSL/TLS encryption for both client connections and replication links. You configure it via the tls-port, tls-cert-file, and related directives in redis.conf.
This means you can encrypt traffic without a stunnel wrapper. It's a straightforward setup that covers most intra-datacenter and client-to-server encryption needs.
FAQ
Is the Redis 6.0 data model or command set backwards compatible?
Yes, the core data model and existing commands remain fully compatible. New features like ACL or RESP3 are opt-in. Existing client applications will continue to work without modification.
Do I have to use threads now with the Threaded I/O feature?
No, it's configurable. The threaded I/O is disabled by default. You enable it and set the number of threads via io-threads and io-threads-do-reads in your configuration file.
Can I upgrade my existing Redis Cluster to 6.0 without downtime?
A rolling upgrade is possible, but you must upgrade all master nodes first, then replicas. Be cautious: new features like ACL need to be configured across all nodes to work seamlessly in a cluster.
What happens to my old replication setup with TLS enabled?
Replication can use the same TLS configuration as client connections. You set tls-replication yes and ensure all replicas connect to the master's TLS port. This encrypts the replication data stream.
Are there any new data types in Redis 6.0?
No, Redis 6.0 does not introduce new core data types (like strings, hashes, lists). The major additions are around security, protocol, and performance infrastructure.