Redis Open Source 8.4 release notes
Redis Open Source 8.4 release notes.
Redis Open Source 8.4.0 (November 2025)
This is the General Availability (GA) release of Redis 8.4 in Redis Open Source.
Major changes compared to Redis 8.2
DIGEST,DELEX;SETextensions - atomic compare-and-set and compare-and-delete for string keysMSETEX- atomically set multiple string keys and update their expirationXREADGROUP- newCLAIMoption for reading both idle pending and incoming stream entriesCLUSTER MIGRATION- atomic slot migrationCLUSTER SLOT-STATS- per-slot usage metrics: key count, CPU time, and network I/O- Redis query engine:
FT.HYBRID- hybrid search and fused scoring - Redis query engine: I/O threading with performance boost for search and query commands (
FT.*) - I/O threading: substantial throughput increase (e.g. >30% for caching use cases (10%
SET, 90%GET), 4 cores) - JSON: substantial memory reduction for homogenous arrays (up to 91%)
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
Redis 8.4 was tested on the following operating systems
- Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat)
- Rocky Linux 8.10, 9.5
- AlmaLinux 8.10, 9.5
- Debian 12 (Bookworm), Debian 13 (Trixie)
- macOS 13 (Ventura), 14 (Sonoma), 15 (Sequoia)
Bug fixes (compared to 8.4-RC1)
- #14524
XREADGROUP CLAIMreturns strings instead of integers - #14529 Add variable key-spec flags to
SET IF*andDELEX - #P928 Potential memory leak (MOD-11484)
- #T1801, #T1805 macOS build failures (MOD-12293)
- #J1438
JSON.NUMINCRBY- wrong result on integer array with non-integer increment (MOD-12282) - #J1437 Thread safety issue related to ASM and shared strings (MOD-12013)
Performance and resource utilization improvements (compared to 8.4-RC1)
Known bugs and limitations
- When executing
FT.SEARCH,FT.AGGREGATE,FT.CURSOR,FT.HYBRID,TS.MGET,TS.MRANGE,TS.MREVRANGEandTS.QUERYINDEXwhile an atomic slot migration process is in progress, the results may be partial or contain duplicates. FT.PROFILE,FT.EXPLAINandFT.EXPLACINCLIdo not contain theFT.HYBRIDoption.- Metrics from
FT.HYBRIDcommand aren’t displayed onFT.INFOandINFO. - Option
EXPLAINSCORE,SHARD_K_RATIO,YIELD_DISTANCE_ASandWITHCURSORwithFT.HYBRIDare not available. - Post-filtering (after
COMBINEstep) using FILTER is not available. - Currently the default response format considers only
key_idandscore, this may change for delivering entire document content.
Redis Open Source 8.4-RC1 (November 2025)
This is the first Release Candidate of Redis 8.4 in Redis Open Source.
Release Candidates are feature-complete pre-releases. Pre-releases are not suitable for production use.
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
Redis 8.4 was tested on the following operating systems
- Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat)
- Rocky Linux 8.10, 9.5
- AlmaLinux 8.10, 9.5
- Debian 12 (Bookworm), Debian 13 (Trixie)
- macOS 13 (Ventura), 14 (Sonoma), 15 (Sequoia)
New Features (compared to 8.2.3)
- #14414 New command:
CLUSTER MIGRATION- atomic slot migration. - #14435 New commands:
DELEXandDIGEST;SETextensions - atomic compare-and-set and compare-and-delete for string keys. - #14434 New command:
MSETEX- set multiple keys and update their expiration. - #14402
XREADGROUP- addCLAIM min-idle-timeto consume both idle pending entries and incoming entries. - #14058 Add auto-repair options for broken AOF tail on startup.
- #14296 Support decoding JSON empty array as a Lua array.
- RedisTimeSeries/RedisTimeSeries#1773
HELPandCOMMAND DOCSnow support time series commands (MOD-8133). - RedisBloom/RedisBloom#892
HELPandCOMMAND DOCSnow support probabilistic commands (MOD-8133). - RediSearch/RediSearch#7076, RediSearch/RediSearch#6857 New Command:
FT.HYBRID- hybrid queries with RRF and LINEAR combination. - RediSearch/RediSearch#7022 Support index updates when atomic slot migrations occur.
- RediSearch/RediSearch#6313 Support multiple I/O threads for RQE cluster manager - Coordinator (MOD-10562).
Bug fixes (compared to 8.2.3)
- #14423 Potential infinite loop when a stream is corrupted.
- #14420 Shutdown blocked client not being properly reset after shutdown cancellation.
- #14417
CLUSTER FORGET- heap-buffer-overflow. - #14415 Potential crash in
lookupKey()whenexecuting_clientis NULL. - RedisTimeSeries/RedisTimeSeries#1776 Potential crash on
TS.RANGEwithALIGN +,AGGREGATION twaandEMPTY(MOD-11620, MOD-10484).
Performance and resource utilization improvements (compared to 8.2.3)
- #14440 Lookahead prefetching - parse multiple commands in advance through a lookahead pipeline.
- #14309 Optimize
BITCOUNTwith AVX2 and AVX512 popcount implementations. - #14227 Optimize
BITCOUNTwith Arm Neon SIMD vectorization. - #14428 Optimize HyperLogLog with branchless comparisons and Arm Neon SIMD vectorization.
- #14222 Optimize Vector set
VADDandVSIMwith AVX2 and AVX512 dot product implementations. - RedisJSON/ijson#9 JSON - memory footprint improvement by using homogeneous arrays (MOD-9511).
- RedisJSON/ijson#7 JSON - memory footprint improvement by inlining short strings (MOD-9511).
Configuration parameters
- #14058
aof-load-corrupt-tail-max-size- maximum corrupted tail size (in bytes) to attempt to repair automatically. - #14296
decode_array_with_array_mt- Lua: control how empty JSON arrays are handled. - #14440
lookahead- runtime-configurable lookahead depth (default: 16). - RediSearch/RediSearch#7065
search-default-scorer- default text and tag scorer (new default is BM25STD). - RediSearch/RediSearch#6769
search-on-oom- behavior when OOM event occurs in the query time, supports 3 values:IGNORE- queries run despite OOM, not recommended for heavy result sets (current behaviour).FAIL- query execution fails if any node is in OOM state at start.RETURN- returns partial results if OOM is detected in only some cluster nodes (default).
- RediSearch/RediSearch#6313
search-io-threads- allow setting the comms threads used by the cluster manager - coordinator (default: 20).
Known bugs and limitations
- When executing
FT.SEARCH,FT.AGGREGATE,FT.CURSOR,FT.HYBRID,TS.MGET,TS.MRANGE,TS.MREVRANGEandTS.QUERYINDEXwhile an atomic slot migration process is in progress, the results may be partial or contain duplicates. FT.PROFILE,FT.EXPLAINandFT.EXPLACINCLIdon’t contain theFT.HYBRIDoption.- Metrics from
FT.HYBRIDcommand aren’t displayed onFT.INFOandINFO. - Option
EXPLAINSCORE,SHARD_K_RATIO,YIELD_DISTANCE_AS, andWITHCURSORwithFT.HYBRIDare not available - Post-filtering (after
COMBINEstep) using FILTER is not available. - Currently, the default response format considers only
key_idandscore, this may change for delivering the entire document content.