Redis Open Source 8.2 release notes
===================================

--------------------------------------------------------------------------------
Upgrade urgency levels:

LOW:      No need to upgrade unless there are new features you want to use.
MODERATE: Program an upgrade of the server, but it's not urgent.
HIGH:     There is a critical bug that may affect a subset of users. Upgrade!
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
SECURITY: There are security fixes in the release.
--------------------------------------------------------------------------------

The release notes contain PRs from multiple repositories:

#n - Redis (https://github.com/redis/redis)
#Qn = Query Engine (https://github.com/RediSearch/RediSearch)
#Jn = JSON (https://github.com/RedisJSON/RedisJSON)
#Tn = Time Series (https://github.com/RedisTimeSeries/RedisTimeSeries)
#Pn = Probabilistic (https://github.com/RedisBloom/RedisBloom)


=============================================================
8.2.1 (v8.2.1)    Committed  Mon 18 Aug 2025 12:00:00 IST
=============================================================

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

### Bug fixes

- #14240 `INFO KEYSIZES` - potential incorrect histogram updates on cluster mode with modules
- #14274 Disable Active Defrag during flushing replica
- #14276 `XADD` or `XTRIM` can crash the server after loading RDB
- #Q6601 Potential crash when running `FLUSHDB` (MOD-10681)

### Performance and resource utilization

- Query Engine - LeanVec and LVQ proprietary Intel optimizations were removed from Redis Open Source
- #Q6621 Fix regression in `INFO` (MOD-10779)

===========================================================
8.2 GA (v8.2.0)    Released Mon 4 Aug 2025 15:00:00 IST
===========================================================

This is the General Availability release of Redis Open Source 8.2.

### Major changes compared to 8.0

- Streams - new commands: `XDELEX` and `XACKDEL`; extension to `XADD` and `XTRIM`
- Bitmap - `BITOP`: new operators: `DIFF`, `DIFF1`, `ANDOR`, and `ONE`
- Query Engine - new SVS-VAMANA vector index type which supports vector compression
- More than 15 performance and resource utilization improvements
- New metrics: per-slot usage metrics, key size distributions for basic data types, and more

### Binary distributions

- Alpine and Debian Docker images - https://hub.docker.com/_/redis
- Install using snap - see https://github.com/redis/redis-snap
- Install using brew - see https://github.com/redis/homebrew-redis
- Install using RPM - see https://github.com/redis/redis-rpm
- Install using Debian APT - see https://github.com/redis/redis-debian


### Operating systems we test Redis 8.2 on

- Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat)
- Rocky Linux 8.10, 9.5
- AlmaLinux 8.10, 9.5
- Debian 12 (Bookworm)
- macOS 13 (Ventura), 14 (Sonoma), 15 (Sequoia)

### Security fixes (compared to 8.2-RC1)

- (CVE-2025-32023) Fix out-of-bounds write in `HyperLogLog` commands
- (CVE-2025-48367) Retry accepting other connections even if the accepted connection reports an error

### New Features (compared to 8.2-RC1)

- #14141 Keyspace notifications - new event types:
  - `OVERWRITTEN` - the value of a key is completely overwritten
  - `TYPE_CHANGED` - key type change

### Bug fixes (compared to 8.2-RC1)

- #14162 Crash when using evport with I/O threads
- #14163 `EVAL` crash when error table is empty
- #14144 Vector sets - RDB format is not compatible with big endian machines
- #14165 Endless client blocking for blocking commands
- #14164 Prevent `CLIENT UNBLOCK` from unblocking `CLIENT PAUSE`
- #14216 TTL was not removed by the `SET` command
- #14224 `HINCRBYFLOAT` removes field expiration on replica

### Performance and resource utilization improvements (compared to 8.2-RC1)

- #14200 Store iterators on stack instead of on heap
- #14144 Vector set - improve RDB loading / RESTORE speed by storing the worst link info 
- #Q6430 More compression variants for the SVS-VAMANA vector index
- #Q6535 `SHARD_K_RATIO` parameter - favor network latency over accuracy for KNN vector query in a Redis cluster (unstable feature) (MOD-10359)

### Modules API

- #14051 `RedisModule_Get*`, `RedisModule_Set*` - allow modules to access Redis configurations
- #14114 `RM_UnsubscribeFromKeyspaceEvents` - unregister a module from specific keyspace notifications

===========================================================
8.2-RC1 (v8.1.240)    Committed Thu 3 Jul 2025 20:00:00 IST
===========================================================

This is the first Release Candidate of Redis Open Source 8.0.

Release Candidates are feature-complete pre-releases. Pre-releases are not suitable for production use.

### Headlines

Redis 8.2 introduces major performance and memory footprint improvements, new commands, and command extensions.

8.2-RC1 is available as a Docker image and can be downloaded from [Docker Hub](https://hub.docker.com/_/redis). Additional distributions will be introduced in upcoming pre-releases.

### Security fixes

- (CVE-2025-27151) redis-check-aof may lead to stack overflow and potential RCE

### New Features

- #14130 Streams - new commands: `XDELEX` and `XACKDEL`; extension to `XADD` and `XTRIM`
- #14039 New command: `CLUSTER SLOT-STATS` - get per-slot usage metrics such as key count, CPU time, and network I/O
- #14122 `VSIM` - new `IN` operator for filtering expression
- #Q6329, #Q6329 - Query Engine - new SVS-VAMANA vector index type which supports vector compression (optimized for Intel machines)

### Bug fixes

- #14143 Gracefully handle short read errors for hashes with TTL during full sync

### Performance and resource utilization improvements

- #14103 Optimize `BITCOUNT` by introducing prefetching
- #14121 Optimize `SCAN` by performing expiration checks only on DBs with volatile keys
- #14140 Optimize expiry check in `scanCallback`
- #14131 Optimize `LREM`, `LPOS`, `LINSERT`, `ZRANK`, and more by caching `string2ll` results in `quicklistCompare`
- #14088 Optimize `COPY`, `RENAME`, and `RESTORE` when TTL is used
- #14074 Reduce the overhead associated with tracking `malloc`’s usable memory
- #13900 Optimize the client’s cron to avoid blocking the main thread
- #J1351 JSON - memory footprint improvement by inlining numbers (MOD-9511)

### Metrics

- #14067 `INFO`: `used_memory_peak_time` - time when `used_memory_peak` was hit
- #13990 `INFO`:
  - `master_current_sync_attempts` - number of times the replica attempted to sync to a master since last disconnection
  - `master_total_sync_attempts` - number of times the replica attempted to sync to a master
  - `master_link_up_since_seconds` - number of seconds since the link has been up
  - `total_disconnect_time_sec` - total cumulative time we've been disconnected as a replica


===========================================================
8.2-M01 (v8.1.224)    Released Thu 19 Jun 2024 10:00:00 IST
===========================================================

This is the first Milestone of Redis Open Source 8.2.

Milestones are non-feature-complete pre-releases. Pre-releases are not suitable for production use.
Once we reach feature-completeness we will release RC1.

### Headlines:

Redis 8.2 introduces major performance and memory footprint improvements, and command extensions.

8.2-M01 is available as a Docker image and can be downloaded from [Docker Hub](https://hub.docker.com/_/redis). Additional distributions will be introduced in upcoming pre-releases.

### New Features

- #13898 `BITOP`: new operators: `DIFF`, `DIFF1`, `ANDOR`, and `ONE` (RED-143607)
- #14065 `VSIM`: Add new `WITHATTRIBS` to return the JSON attribute associated with an element

### Bug fixes (compared to 8.0.2)

- #13984 Memory usage and overhead report not updated when emptying or releasing a dict
- #14081 Cron-based timers run twice as fast when active defrag is enabled
- #14085 A short read may lead to an exit() on a replica
- #14092 db->expires is not defragmented

### Performance and resource utilization improvements (compared to 8.0.2)

- #13806 Keyspace - unify key and value
- #13968 Offload memory release of argv and rewrite objects into I/O threads
- #13969 Make I/O threads and main thread process in parallel and reduce notifications
- #14017 Improve I/O threads performance by using memory prefetching
- #J1351 JSON - Reduce memory footprint of numerical values (MOD-9511)

### Metrics

- #13944 `CLIENT INFO` and `CLIENT LIST`:
  - `tot-net-in`: total network bytes read from the client connection
  - `tot-net-out`: total network bytes sent to the client connection
  - `tot-cmds`: number of commands executed by the client connection
- #13907 `INFO`: `sentinel` section - `sentinel_total_tilt` - number of times entering tilt mode

