redis/00-RELEASENOTES

179 lines
7.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 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 clients 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