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
Redis 8.2 builds on the foundation of Redis 8.0 with significant performance and memory optimizations, enhanced streaming capabilities, and improved cluster management tools.
15
+
16
+
This release delivers major improvements across multiple areas:
17
+
- Enhanced Redis Streams with new commands for better consumer group management
18
+
- New bitmap operations for advanced bit manipulation
19
+
- Advanced cluster monitoring with per-slot usage metrics
20
+
- Optimized vector search with new compression algorithms
21
+
- Enhanced keyspace notifications with new event types
22
+
- More than 15 performance and resource utilization improvements
23
+
24
+
Below is a detailed breakdown of these updates.
25
+
26
+
## Security improvements
27
+
28
+
Redis 8.2 includes important security fixes:
29
+
-**CVE-2025-27151**: Fixed potential stack overflow and RCE vulnerability in redis-check-aof.
30
+
-**CVE-2025-32023**: Fixed out-of-bounds write vulnerability in HyperLogLog commands.
31
+
-**CVE-2025-48367**: Improved connection handling to retry accepting connections even when errors occur.
32
+
33
+
## New features
34
+
35
+
### Enhanced Redis Streams
36
+
37
+
Redis 8.2 introduces powerful new commands that simplify consumer group management and stream lifecycle operations:
38
+
39
+
-[`XDELEX`]({{< relref "/commands/xdelex/" >}}): Delete entries from streams with advanced consumer group handling options.
40
+
-[`XACKDEL`]({{< relref "/commands/xackdel/" >}}): Acknowledge and delete stream entries in a single atomic operation.
41
+
42
+
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 working with multiple consumer groups.
43
+
44
+
The [`XADD`]({{< relref "/commands/xadd/" >}}) and [`XTRIM`]({{< relref "/commands/xtrim/" >}}) commands have also been extended with these same options, providing consistent behavior across all commands that remove stream entries.
45
+
46
+
### Cluster monitoring improvements
47
+
48
+
The new [`CLUSTER SLOT-STATS`]({{< relref "/commands/cluster-slot-stats/" >}}) command provides detailed per-slot usage metrics including:
49
+
- Key count per slot
50
+
- CPU time consumption
51
+
- Network ingress and egress
52
+
53
+
This enhanced visibility helps you optimize cluster performance and identify hotspots in your data distribution.
54
+
55
+
### Vector search enhancements
56
+
57
+
The `VSIM` command now supports the `IN` operator for filtering expressions, giving you more flexibility when performing vector similarity searches with complex filtering criteria.
58
+
59
+
### Enhanced bitmap operations
60
+
61
+
Redis 8.2 extends the [`BITOP`]({{< relref "/commands/bitop/" >}}) command with new operators that provide more sophisticated bit manipulation capabilities:
62
+
63
+
-**DIFF**: Perform bitwise difference operations between bitmaps.
64
+
-**DIFF1**: Calculate the difference with optimized single-bit operations.
65
+
-**ANDOR**: Combine AND and OR operations in a single command.
66
+
-**ONE**: Specialized operation for single-bit scenarios.
67
+
68
+
These new operators enable more complex bitmap workflows and can simplify operations that previously required multiple commands.
69
+
70
+
### Improved keyspace notifications
71
+
72
+
Redis 8.2 introduces new keyspace notification event types that provide better visibility into data changes:
73
+
74
+
-**OVERWRITTEN**: Triggered when a key's value is completely overwritten.
75
+
-**TYPE_CHANGED**: Fired when a key's data type changes.
76
+
77
+
These events help you build more responsive applications by providing granular notifications about specific types of data modifications.
78
+
79
+
## Improvements
80
+
81
+
Redis 8.2 delivers substantial performance improvements across core operations.
82
+
83
+
### Performance optimizations
84
+
85
+
-**BITCOUNT**: Enhanced with prefetching optimizations for faster bit counting operations.
86
+
-**SCAN**: Optimized to perform expiration checks only on databases with volatile keys, reducing unnecessary overhead.
87
+
-**List operations**: `LREM`, `LPOS`, and `LINSERT` benefit from cached `string2ll` results in `quicklistCompare`.
88
+
-**Sorted set operations**: `ZRANK` and related commands use the same caching optimizations.
89
+
-**Key operations**: `COPY`, `RENAME`, and `RESTORE` are optimized when TTL is used.
90
+
-**Client management**: Reduced overhead in client cron operations to avoid blocking the main thread.
91
+
-**Vector operations**: Improved RDB loading and RESTORE speed for vector sets by storing worst link information.
92
+
93
+
### Memory efficiency improvements
94
+
95
+
-**JSON data types**: Memory footprint improvements through number inlining.
96
+
-**Memory tracking**: Reduced overhead associated with tracking malloc's usable memory.
97
+
-**Expiry handling**: Optimized expiry checks in scan callbacks.
98
+
-**Vector compression**: Additional compression variants for the SVS-VAMANA vector index reduce memory usage.
99
+
100
+
### Vector search performance
101
+
102
+
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.
103
+
104
+
### Enhanced metrics
105
+
106
+
Redis 8.2 provides new metrics to help you monitor and troubleshoot your Redis instances.
107
+
108
+
#### Memory metrics
109
+
110
+
-`used_memory_peak_time`: Timestamp when `used_memory_peak` was reached
111
+
112
+
#### Replication metrics
113
+
114
+
-`master_current_sync_attempts`: Number of sync attempts since last disconnection
115
+
-`master_total_sync_attempts`: Total number of sync attempts to master
116
+
-`master_link_up_since_seconds`: Duration since the replication link was established
117
+
-`total_disconnect_time_sec`: Cumulative time the replica has been disconnected
118
+
119
+
These metrics provide better visibility into replication health and help you identify patterns in connection stability.
120
+
121
+
## Component versions
122
+
123
+
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.
Copy file name to clipboardExpand all lines: content/develop/whats-new/redis-feature-sets.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,7 @@ To use a new feature introduced in a later feature set, you must upgrade the cor
17
17
18
18
| Redis feature set | What's new |
19
19
|-------------------|------------|
20
+
|**Feature set version:** 8.2| See [here]({{< relref "/develop/whats-new/8-2" >}})|
20
21
|**Feature set version:** 8.0| See [here]({{< relref "/develop/whats-new/8-0" >}})|
21
22
| **Feature set version:** 7.4<br /><br />**Component versions:**<br />[Redis 7.4]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisce-7.4-release-notes.md">}})<br />[Search 2.10]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes.md" >}})<br />[JSON 2.8]({{<relref "operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.8-release-notes.md">}})<br />[Time series 1.12]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.12-release-notes.md">}})<br />[Bloom 2.8]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes.md">}}) | **Hash**: <br>- [Expiration of individual hash fields]({{<relref "/develop/data-types/hashes#field-expiration">}}). <br> **Streams**: <br>- To start reading from the last stream message, use [`XREAD`]({{<relref "/commands/xread">}}) with the new ID value `+`.<br> **Time series**: <br>Insertion-filter for close samples. <br> **JSON**: <br>- A fix to not duplicate `AOF` commands multiple times in [`JSON.MSET`]({{< relref "commands/json.mset/" >}}). <br> **Probabilistic**: <br>- Returns an error if [`CMS.MERGE`]({{< relref "commands/cms.merge/" >}}) results in an overflow or underflow. <br> **Redis Query Engine**: <br>- New `BFLOAT16` and `FLOAT16` vector data types, reducing memory consumed by vectors while preserving accuracy. <br>- Support for indexing empty and missing values and enhanced developer experience for queries with exact matching capabilities. <br>- You can match `TAG` fields without needing to escape special characters. <br>- Expanded geospatial search with new `INTERSECT` and `DISJOINT` operators, improved reporting of the memory consumed by the index, and exposed full-text scoring in aggregation pipelines. |
22
23
| **Feature set version:** 7.2<br /><br />**Component versions:**<br />[Redis 7.2](https://raw.githubusercontent.com/redis/redis/7.2/00-RELEASENOTES)<br />[Search 2.8]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.8-release-notes.md" >}})<br />[JSON 2.6]({{<relref "operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.6-release-notes.md">}})<br />[Time series 1.10]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.10-release-notes.md">}})<br />[Bloom 2.6]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.6-release-notes.md">}})<br />[Gears 2.0](https://github.com/RedisGears/RedisGears/releases) | - Performance and resource utilization improvements, including significant memory and speed optimizations for lists, sets, and sorted sets.<br />**JSON**:<br />- New JSON commands: [`JSON.MERGE`]({{< relref "commands/json.merge/" >}}) and [`JSON.MSET`]({{< relref "commands/json.mset/" >}}).<br />**Redis Query Engine:**<br />- [Geo polygon search]({{< relref "commands/ft.search/#examples" >}}).<br>**Compatibility changes**:<br>- Redis 7.2 uses a new format (version 11) for RDB files, which is incompatible with older versions.<br />- Redis feature set 7.2 does not include [graph capabilities](https://redis.io/blog/redisgraph-eol/). |
- (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