7.0.15

Latest release in branch 7.0
Released 2 years ago (January 09, 2024)

Software Redis
Branch 7.0
Status
End of life
First official release version 7.0.0
First official release date 3 years ago (April 27, 2022)
Release notes https://github.com/redis/redis/releases/tag/7.0.15
Source code https://github.com/redis/redis/tree/7.0.15
Documentation https://redis.io/docs/
Download https://download.redis.io/releases/
Redis 7.0 Releases View full list

What Is New in Redis 7.0

Redis 7.0 delivers significant enhancements across data management, scalability, and operational control. This table summarizes the key areas of improvement.

Category Key Updates
New Commands & Data Types New sorted set and list commands, function library management, and precise key expiration inspection.
Functions & Scripting Redis Functions for defining and managing server-side logic as first-class citizens.
Pub/Sub Sharded Pub/Sub for scalable messaging within a Redis Cluster.
Persistence Multi-part AOF (Append Only File) mechanism for more robust and manageable log files.
Access Control Granular ACL improvements, including key pattern-based permissions and rule propagation.
Performance & Internals Optimized Lua engine, command behavior changes, and numerous low-level enhancements.

What new commands should I use in Redis 7.0?

Redis 7.0 introduces several commands that expand data structure operations and server introspection. These additions fill specific gaps in previous versions.

Sorted Set and List Operations

Commands like ZMPOP, ZINTERCARD, and LMOVE provide more flexible ways to manipulate sorted sets and lists. For instance, ZMPOP pops the highest or lowest scoring members atomically, which is useful for task queues.

Library and Function Management

The FUNCTION command family (FUNCTION LOAD, FUNCTION LIST, etc.) allows you to deploy and manage server-side code libraries. This moves beyond simple EVAL scripts to a more maintainable system.

Key Inspection Commands

Use EXPIRETIME and PEXPIRETIME to check the absolute Unix timestamp when a key expires. This is more precise than checking the remaining time with TTL.

How do Redis Functions change server-side scripting?

Redis Functions replace Lua scripts with a managed, library-based approach. You load a function once, and it persists like any other data type, callable by name.

In practice, this means you don't have to transmit the entire script body on every call, reducing network overhead. Functions are also stored in the AOF and replicated to replicas, making them durable and consistent across your data set.

You manage them with the FUNCTION commands. This model is cleaner for production because you version and deploy your logic as a unit, not as inline strings mixed with your application code.

What is Sharded Pub/Sub and when do I need it?

Sharded Pub/Sub scales publish/subscribe messaging across a Redis Cluster. Traditional Pub/Sub broadcasts messages to all nodes, which doesn't work in a clustered environment.

With Sharded Pub/Sub, messages are routed to a specific shard based on the channel name. Clients subscribed to that channel on the correct shard will receive the message. This matters because it lets you build scalable, topic-based messaging systems using Redis Cluster without a separate message broker.

Use it when your Pub/Sub traffic is high and you need the horizontal scalability of a Redis Cluster. The syntax uses SSUBSCRIBE and SPUBLISH for sharded channels.

How does Multi-Part AOF improve persistence?

Multi-part AOF splits the single Append Only File into a sequence of smaller files. A manifest file tracks the order, and Redis can rewrite or truncate these files in the background.

The main benefit is operational. Rewriting a massive single AOF file often caused high disk I/O and latency. Now, the rewrite operates on a base file and incremental files, which is more efficient. Recovery is also more robust because the system can tolerate corruption in a single segment without losing the entire history.

This change is mostly internal. Your configuration and data durability guarantees remain the same, but with better performance during rewrites.

What ACL improvements are most relevant for security?

The Access Control List system now supports key pattern matching. You can define rules that allow or deny commands on keys that match a specific glob-style pattern.

For example, you can create a user that only has read access to keys starting with "cache:" and write access to keys starting with "session:". This granularity was a major missing piece for multi-tenant applications or complex service architectures using a single Redis instance.

ACL rules can also be propagated from a primary to replicas more reliably. In practice, this lets you centralize user management on your primary node and have it automatically apply across your replication topology.

FAQ

Is Redis 7.0 backwards compatible with my existing Lua scripts?
Yes, but there's a new Lua engine. Your existing EVAL scripts should work without modification. However, the new FUNCTION feature is the recommended path for new server-side logic as it offers better management and performance.

Can I use Sharded Pub/Sub and regular Pub/Sub together?
Yes. They operate independently. Use SUBSCRIBE/PUBLISH for global, non-sharded broadcasts and SSUBSCRIBE/SPUBLISH for sharded channels within a Redis Cluster. Choose based on your scalability needs.

Do I need to change my configuration for Multi-Part AOF?
No. The multi-part AOF mechanism is enabled by default if you use AOF persistence (appendonly yes). The old single-file AOF method is deprecated. The change is internal and should not require adjustment, but monitor disk usage during the transition.

How do key pattern ACLs work with wildcards?
You can use patterns like ~object:* in an ACL rule. The ~ prefix indicates a pattern. This allows a user to run a command only on keys matching that pattern, such as ~cache:* for all cache keys. It's a powerful way to isolate access within a database.

What's the deal with the new SORT_RO command?
SORT_RO is a read-only variant of the SORT command. The original SORT command can store results with the STORE option, which requires write access. SORT_RO only reads and sorts, so it can be allowed for users with read-only ACL permissions, improving security granularity.

Releases In Branch 7.0

Version Release date
7.0.15 2 years ago
(January 09, 2024)
7.0.14 2 years ago
(October 18, 2023)
7.0.13 2 years ago
(September 06, 2023)
7.0.12 2 years ago
(July 10, 2023)
7.0.11 2 years ago
(April 17, 2023)
7.0.10 3 years ago
(March 20, 2023)
7.0.9 3 years ago
(February 28, 2023)
7.0.8 3 years ago
(January 16, 2023)
7.0.7 3 years ago
(December 16, 2022)
7.0.6 3 years ago
(December 12, 2022)
7.0.5 3 years ago
(September 21, 2022)
7.0.4 3 years ago
(July 18, 2022)
7.0.3 3 years ago
(July 11, 2022)
7.0.2 3 years ago
(June 12, 2022)
7.0.1 3 years ago
(June 08, 2022)
7.0.0 3 years ago
(April 27, 2022)
7.0-rc3 4 years ago
(April 05, 2022)
7.0-rc2 4 years ago
(February 28, 2022)
7.0-rc1 4 years ago
(January 31, 2022)