You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/develop/whats-new/8-2.md
+57-17Lines changed: 57 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,61 +15,97 @@ Redis 8.2 builds on the foundation of Redis 8.0 with significant performance and
15
15
16
16
This release delivers major improvements across multiple areas:
17
17
- Enhanced Redis Streams with new commands for better consumer group management
18
+
- New bitmap operations for advanced bit manipulation
18
19
- Advanced cluster monitoring with per-slot usage metrics
19
20
- Optimized vector search with new compression algorithms
20
-
- Substantial performance gains across core operations
21
+
- Enhanced keyspace notifications with new event types
22
+
- More than 15 performance and resource utilization improvements
21
23
22
24
Below is a detailed breakdown of these updates.
23
25
24
26
## New features
25
27
26
28
### Enhanced Redis Streams
29
+
27
30
Redis 8.2 introduces powerful new commands that simplify consumer group management and stream lifecycle operations:
28
31
29
-
-[XDELEX](https://redis.io/docs/latest/commands/xdelex/): Delete entries from streams with advanced consumer group handling options
30
-
-[XACKDEL](https://redis.io/docs/latest/commands/xackdel/): Acknowledge and delete stream entries in a single atomic operation
32
+
-[`XDELEX`]({{< relref "/commands/xdelex/" >}}): Delete entries from streams with advanced consumer group handling options.
33
+
-[`XACKDEL`]({{< relref "/commands/xackdel/" >}}): Acknowledge and delete stream entries in a single atomic operation.
31
34
32
35
These commands include `KEEPREF`, `DELREF`, and `ACKED` options that give you precise control over how consumer group references are handled during entry deletion. This simplifies common patterns where you need to clean up acknowledged entries while maintaining consumer group integrity.
33
36
34
-
The `XADD`and `XTRIM` commands have also been extended with these same options, providing consistent behavior across all stream management operations.
37
+
The [`XADD`]({{< relref "/commands/xadd/" >}}) and [`XTRIM`]({{< relref "/commands/xtrim/" >}}) commands have also been extended with these same options, providing consistent behavior across all stream management operations.
35
38
36
39
### Cluster monitoring improvements
37
-
The new [CLUSTER SLOT-STATS](https://redis.io/docs/latest/commands/cluster-slot-stats/) command provides detailed per-slot usage metrics including:
40
+
41
+
The new [`CLUSTER SLOT-STATS`]({{< relref "/commands/cluster-slot-stats/" >}}) command provides detailed per-slot usage metrics including:
38
42
- Key count per slot
39
43
- CPU time consumption
40
44
- Network I/O statistics
41
45
42
46
This enhanced visibility helps you optimize cluster performance and identify hotspots in your data distribution.
43
47
44
48
### Vector search enhancements
49
+
45
50
Redis 8.2 introduces the SVS-VAMANA vector index type, which supports vector compression and is optimized for Intel machines. This new index type can significantly reduce memory usage while maintaining search performance for vector similarity operations.
46
51
47
52
The `VSIM` command now supports the `IN` operator for filtering expressions, giving you more flexibility when performing vector similarity searches with complex filtering criteria.
48
53
54
+
### Enhanced bitmap operations
55
+
56
+
Redis 8.2 extends the [`BITOP`]({{< relref "/commands/bitop/" >}}) command with new operators that provide more sophisticated bit manipulation capabilities:
57
+
58
+
-**DIFF**: Perform bitwise difference operations between bitmaps.
59
+
-**DIFF1**: Calculate the difference with optimized single-bit operations.
60
+
-**ANDOR**: Combine AND and OR operations in a single command.
61
+
-**ONE**: Specialized operation for single-bit scenarios.
62
+
63
+
These new operators enable more complex bitmap analytics and can simplify operations that previously required multiple commands.
64
+
65
+
### Improved keyspace notifications
66
+
67
+
Redis 8.2 introduces new keyspace notification event types that provide better visibility into data changes:
68
+
69
+
-**OVERWRITTEN**: Triggered when a key's value is completely overwritten.
70
+
-**TYPE_CHANGED**: Fired when a key's data type changes.
71
+
72
+
These events help you build more responsive applications by providing granular notifications about specific types of data modifications.
73
+
49
74
## Improvements
50
75
76
+
Redis 8.2 delivers substantial performance improvements across core operations.
77
+
51
78
### Performance optimizations
52
-
Redis 8.2 delivers substantial performance improvements across core operations:
53
79
54
-
-**BITCOUNT**: Enhanced with prefetching optimizations for faster bit counting operations
55
-
-**SCAN**: Optimized to perform expiration checks only on databases with volatile keys, reducing unnecessary overhead
56
-
-**List operations**: `LREM`, `LPOS`, and `LINSERT` benefit from cached `string2ll` results in `quicklistCompare`
57
-
-**Sorted set operations**: `ZRANK` and related commands use the same caching optimizations
58
-
-**Key operations**: `COPY`, `RENAME`, and `RESTORE` are optimized when TTL is used
59
-
-**Client management**: Reduced overhead in client cron operations to avoid blocking the main thread
80
+
-**BITCOUNT**: Enhanced with prefetching optimizations for faster bit counting operations.
81
+
-**SCAN**: Optimized to perform expiration checks only on databases with volatile keys, reducing unnecessary overhead.
82
+
-**List operations**: `LREM`, `LPOS`, and `LINSERT` benefit from cached `string2ll` results in `quicklistCompare`.
83
+
-**Sorted set operations**: `ZRANK` and related commands use the same caching optimizations.
84
+
-**Key operations**: `COPY`, `RENAME`, and `RESTORE` are optimized when TTL is used.
85
+
-**Client management**: Reduced overhead in client cron operations to avoid blocking the main thread.
86
+
-**Vector operations**: Improved RDB loading and RESTORE speed for vector sets by storing worst link information.
60
87
61
88
### Memory efficiency improvements
62
-
-**JSON data types**: Memory footprint improvements through number inlining
63
-
-**Memory tracking**: Reduced overhead associated with tracking malloc's usable memory
64
-
-**Expiry handling**: Optimized expiry checks in scan callbacks
89
+
90
+
-**JSON data types**: Memory footprint improvements through number inlining.
91
+
-**Memory tracking**: Reduced overhead associated with tracking malloc's usable memory.
92
+
-**Expiry handling**: Optimized expiry checks in scan callbacks.
93
+
-**Vector compression**: Additional compression variants for the SVS-VAMANA vector index reduce memory usage.
94
+
95
+
### Vector search performance
96
+
97
+
Redis 8.2 introduces the `SHARD_K_RATIO` parameter for KNN vector queries in Redis clusters. This unstable feature allows you to favor network latency over accuracy, providing faster responses when exact precision isn't critical.
65
98
66
99
### Enhanced metrics
67
-
Redis 8.2 provides new metrics to help you monitor and troubleshoot your Redis instances:
100
+
101
+
Redis 8.2 provides new metrics to help you monitor and troubleshoot your Redis instances.
68
102
69
103
#### Memory metrics
104
+
70
105
-`used_memory_peak_time`: Timestamp when `used_memory_peak` was reached
71
106
72
107
#### Replication metrics
108
+
73
109
-`master_current_sync_attempts`: Number of sync attempts since last disconnection
74
110
-`master_total_sync_attempts`: Total number of sync attempts to master
75
111
-`master_link_up_since_seconds`: Duration since the replication link was established
@@ -78,8 +114,12 @@ Redis 8.2 provides new metrics to help you monitor and troubleshoot your Redis i
78
114
These metrics provide better visibility into replication health and help you identify patterns in connection stability.
79
115
80
116
## Security improvements
117
+
81
118
Redis 8.2 includes important security fixes:
82
-
-**CVE-2025-27151**: Fixed potential stack overflow and RCE vulnerability in redis-check-aof
119
+
-**CVE-2025-27151**: Fixed potential stack overflow and RCE vulnerability in redis-check-aof.
120
+
-**CVE-2025-32023**: Fixed out-of-bounds write vulnerability in HyperLogLog commands.
121
+
-**CVE-2025-48367**: Improved connection handling to retry accepting connections even when errors occur.
83
122
84
123
## Component versions
124
+
85
125
Redis 8.2 continues the unified distribution approach introduced in Redis 8.0, delivering all functionality in a single Redis Open Source package without separate modules.
- (CVE-2025-32023) Fix out-of-bounds write in `HyperLogLog` commands.
50
+
- (CVE-2025-48367) Retry accepting other connections even if the accepted connection reports an error.
51
+
52
+
### New Features (compared to 8.2-RC1)
53
+
54
+
-[#14141](https://github.com/redis/redis/pull/14141) Keyspace notifications - new event types:
55
+
-`OVERWRITTEN` - the value of a key is completely overwritten
56
+
-`TYPE_CHANGED` - key type change
57
+
58
+
### Bug fixes (compared to 8.2-RC1)
59
+
60
+
-[#14162](https://github.com/redis/redis/pull/14162) Crash when using evport with I/O threads.
61
+
-[#14163](https://github.com/redis/redis/pull/14163)`EVAL` crash when error table is empty.
62
+
-[#14144](https://github.com/redis/redis/pull/14144) Vector sets - RDB format is not compatible with big endian machines.
63
+
-[#14165](https://github.com/redis/redis/pull/14165) Endless client blocking for blocking commands.
64
+
-[#14164](https://github.com/redis/redis/pull/14164) Prevent `CLIENT UNBLOCK` from unblocking `CLIENT PAUSE`.
65
+
-[#14216](https://github.com/redis/redis/pull/14216) TTL was not removed by the `SET` command.
66
+
-[#14224](https://github.com/redis/redis/pull/14224)`HINCRBYFLOAT` removes field expiration on replica.
67
+
68
+
### Performance and resource utilization improvements (compared to 8.2-RC1)
69
+
70
+
-[#Q6430](https://github.com/RediSearch/RediSearch/pull/6430) More compression variants for the SVS-VAMANA vector index.
71
+
-[#Q6535](https://github.com/RediSearch/RediSearch/pull/6535)`SHARD_K_RATIO` parameter - favor network latency over accuracy for KNN vector query in a Redis cluster (unstable feature) (MOD-10359).
72
+
-[#14144](https://github.com/redis/redis/pull/14144) Vector set - improve RDB loading / RESTORE speed by storing the worst link info .
73
+
74
+
### Modules API
75
+
76
+
-[#14051](https://github.com/redis/redis/pull/14051)`RedisModule_Get*`, `RedisModule_Set*` - allow modules to access Redis configurations.
77
+
-[#14114](https://github.com/redis/redis/pull/14114)`RM_UnsubscribeFromKeyspaceEvents` - unregister a module from specific keyspace notifications.
78
+
15
79
## Redis Open Source 8.2-RC1 (July 2025)
16
80
17
81
This is the first Release Candidate of Redis Open Source 8.2.
@@ -30,31 +94,31 @@ Redis 8.2-RC1 is available as a Docker image and can be downloaded from [Docker
30
94
31
95
### New Features (compared to 8.2-M01)
32
96
33
-
-[#14130](https://github.com/redis/redis/pull/14130) Streams - new commands: `XDELEX` and `XACKDEL`; extension to `XADD` and `XTRIM`
34
-
-[#14039](https://github.com/redis/redis/pull/14039) New command: `CLUSTER SLOT-STATS` - get per-slot usage metrics such as key count, CPU time, and network I/O
35
-
-[#14122](https://github.com/redis/redis/pull/14122)`VSIM` - new `IN` operator for filtering expressions
36
-
-[#Q6329](https://github.com/RediSearch/RediSearch/pull/6329), [#Q6394](https://github.com/RediSearch/RediSearch/pull/6394) - Query Engine - new SVS-VAMANA vector index type which supports vector compression (optimized for Intel machines)
97
+
-[#14130](https://github.com/redis/redis/pull/14130) Streams - new commands: `XDELEX` and `XACKDEL`; extension to `XADD` and `XTRIM`.
98
+
-[#14039](https://github.com/redis/redis/pull/14039) New command: `CLUSTER SLOT-STATS` - get per-slot usage metrics such as key count, CPU time, and network I/O.
99
+
-[#14122](https://github.com/redis/redis/pull/14122)`VSIM` - new `IN` operator for filtering expressions.
100
+
-[#Q6329](https://github.com/RediSearch/RediSearch/pull/6329), [#Q6394](https://github.com/RediSearch/RediSearch/pull/6394) - Query Engine - new SVS-VAMANA vector index type which supports vector compression (optimized for Intel machines).
37
101
38
102
### Bug fixes (compared to 8.2-M01)
39
103
40
-
-[#14143](https://github.com/redis/redis/pull/14143) Gracefully handle short read errors for hashes with TTL during full sync
104
+
-[#14143](https://github.com/redis/redis/pull/14143) Gracefully handle short read errors for hashes with TTL during full sync.
41
105
42
106
### Performance and resource utilization improvements (compared to 8.2-M01)
43
107
44
-
-[#14103](https://github.com/redis/redis/pull/14103) Optimize `BITCOUNT` by introducing prefetching
45
-
-[#14121](https://github.com/redis/redis/pull/14121) Optimize `SCAN` by performing expiration checks only on DBs with volatile keys
46
-
-[#14140](https://github.com/redis/redis/pull/14140) Optimize expiry check in `scanCallback`
47
-
-[#14131](https://github.com/redis/redis/pull/14131) Optimize `LREM`, `LPOS`, `LINSERT`, `ZRANK`, and more by caching `string2ll` results in `quicklistCompare`
48
-
-[#14088](https://github.com/redis/redis/pull/14088) Optimize `COPY`, `RENAME`, and `RESTORE` when TTL is used
49
-
-[#14074](https://github.com/redis/redis/pull/14074) Reduce the overhead associated with tracking `malloc`’s usable memory
50
-
-[#13900](https://github.com/redis/redis/pull/13900) Optimize the client’s cron to avoid blocking the main thread
51
-
-[#J1350](https://github.com/RedisJSON/RedisJSON/pull/1350) JSON - memory footprint improvement by inlining numbers (MOD-9511)
108
+
-[#14103](https://github.com/redis/redis/pull/14103) Optimize `BITCOUNT` by introducing prefetching.
109
+
-[#14121](https://github.com/redis/redis/pull/14121) Optimize `SCAN` by performing expiration checks only on DBs with volatile keys.
110
+
-[#14140](https://github.com/redis/redis/pull/14140) Optimize expiry check in `scanCallback`.
111
+
-[#14131](https://github.com/redis/redis/pull/14131) Optimize `LREM`, `LPOS`, `LINSERT`, `ZRANK`, and more by caching `string2ll` results in `quicklistCompare`.
112
+
-[#14088](https://github.com/redis/redis/pull/14088) Optimize `COPY`, `RENAME`, and `RESTORE` when TTL is used.
113
+
-[#14074](https://github.com/redis/redis/pull/14074) Reduce the overhead associated with tracking `malloc`’s usable memory.
114
+
-[#13900](https://github.com/redis/redis/pull/13900) Optimize the client’s cron to avoid blocking the main thread.
115
+
-[#J1350](https://github.com/RedisJSON/RedisJSON/pull/1350) JSON - memory footprint improvement by inlining numbers (MOD-9511).
52
116
53
117
### Metrics
54
118
55
-
-[#14067](https://github.com/redis/redis/pull/14067)`INFO`: `used_memory_peak_time` - time when `used_memory_peak` was hit
119
+
-[#14067](https://github.com/redis/redis/pull/14067)`INFO`: `used_memory_peak_time` - time when `used_memory_peak` was hit.
0 commit comments