Redis Open Source 8.4 release notes
Redis Open Source 8.4 release notes.
Redis Open Source 8.4.1 (February 2026)
Update urgency: SECURITY: There are security fixes in the release.
Security fixes
- RedisTimeSeries/RedisTimeSeries#1837, RedisJSON/RedisJSON#1474 Hide personally identifiable information from server log.
- RedisBloom/RedisBloom#936 Cuckoo filter: crash on RDB load on 0 buckets (MOD-11593).
- RedisBloom/RedisBloom#945 Bloom filter: crash on RDB load on large number of filters (MOD-11590).
Bug fixes
- #14637 Atomic slot migration: wrong adjacent slot range behavior.
- #14567 Atomic slot migration: support delay trimming slots after finishing migrating slots.
- #14746
CLUSTER SLOT-STATS: Fix a few memory tracking bugs. - RedisTimeSeries/RedisTimeSeries#1864 Atomic slot migration: time series limitations (MOD-13611).
- RediSearch/RediSearch#6973 Correct empty string token counting in
byteOffsetcalculations to ensure accurate text position tracking (MOD-11233). - RediSearch/RediSearch#6995 Prevent
FT.INFOcommand fanout to replicas to reduce unnecessary cluster traffic. - RediSearch/RediSearch#7154 Display Background Indexing OOM warning in
FT.AGGREGATEwhen memory limits are approached (MOD-11817). - RediSearch/RediSearch#7219 Resolve concurrency issue in
FT.AGGREGATEreducer that caused intermittent errors (MOD-12243). - RediSearch/RediSearch#7255 Correct
BM25STDunderflow wraparound to prevent incorrect scoring (MOD-12223). - RediSearch/RediSearch#7264 Ensure accurate
totalDocsLenupdates to maintain correct document statistics (MOD-12234). - RediSearch/RediSearch#7275 Report used memory as
unsigned longto prevent overflow (RED-169833). - RediSearch/RediSearch#7350
FT.CREATEwith LeanVec parameters on non-Intel architectures (RED-176382). - RediSearch/RediSearch#7371 Validate
search-min-operation-workersmin value correctly (MOD-12383). - RediSearch/RediSearch#7430 Prevent coordinator deadlock in
FT.HYBRIDqueries by avoiding index read lock (MOD-12489). - RediSearch/RediSearch#7435 Ensure full profile output on timeout with
RETURNpolicy inFT.PROFILE(MOD-12320). - RediSearch/RediSearch#7446 Remove outdated validation from debug aggregate in cluster mode (MOD-12435).
- RediSearch/RediSearch#7455 Ensure internal cursors are deleted immediately in cluster mode (MOD-12493).
- RediSearch/RediSearch#7458 Correct GC regression that caused stability issues (MOD-12538).
- RediSearch/RediSearch#7460 Prevent potential double-free on error path in Fork GC (MOD-12521).
- RediSearch/RediSearch#7499 Propagate
HGETALLcommand in HDT mode (MOD-12662). - RediSearch/RediSearch#7534 Reduce number of worker threads asynchronously to prevent performance degradation (MOD-12252, MOD-11658).
- RediSearch/RediSearch#7553 Handle
WITHSCOREScorrectly whenSCOREis sent alone without extra fields in coordinator (MOD-12647). - RediSearch/RediSearch#7560 Properly handle connection closing in IO thread at shutdown and fix
searchRequestCtxfreeing on error (MOD-12699). - RediSearch/RediSearch#7685 Resolve cursor logical leak that could lead to resource exhaustion (MOD-12807).
- RediSearch/RediSearch#7710 Support for
WITHCOUNTinFT.AGGREGATE(MOD-11751). - RediSearch/RediSearch#7794 Correctly handle binary data with embedded nulls to prevent crashes (MOD-13010).
- RediSearch/RediSearch#7812 Correct SVS GC for no-workers case (MOD-12983).
- RediSearch/RediSearch#7815 Fix command routing in cluster mode by not relying on shard index (MOD-13049).
- RediSearch/RediSearch#7823 Support vector blob only through parameter in
FT.HYBRID(MOD-13123). - RediSearch/RediSearch#7873 Handle warnings in empty
FT.AGGREGATEreplies in cluster mode (MOD-12640). - RediSearch/RediSearch#7897 Remove asserts from
DownloadFileto prevent crash (MOD-13096). - RediSearch/RediSearch#7901 Support multiple warnings in reply to prevent warning loss (MOD-13252).
- RediSearch/RediSearch#7903 Eliminate memory leak in
FT.HYBRIDqueries with Active-Active enabled (MOD-13143). - RediSearch/RediSearch#7886 Remove non-TEXT fields from spec's keys dictionary to prevent incorrect field handling (MOD-13150).
- RediSearch/RediSearch#7905 Remove non-TEXT fields from spec's keys dictionary and refactor keys dict (MOD-13150, MOD-13151).
- RediSearch/RediSearch#7978 Avoid using negative key position values during command registration (MOD-13332).
- RediSearch/RediSearch#8052 Resolve incorrect results when using
LOAD *withFT.HYBRID(MOD-12736, MOD-13556). - RediSearch/RediSearch#8083 Correct
FULLTEXTfield metric count accuracy (MOD-13432). - RediSearch/RediSearch#8089 Handle edge case in clusterset (MOD-13562).
- RediSearch/RediSearch#8151 Correct
FT.PROFILEshard total profile time calculation (MOD-13735, MOD-13181). - RediSearch/RediSearch#8153 Resolve config registration issue (RED-171841).
- RediSearch/RediSearch#7449 Ensure
FT.HYBRIDrespects timeout settings (MOD-11004). - RediSearch/RediSearch#7238 Initialize
GIL_TIMEproperly forFT.PROFILE(MOD-12553). - RediSearch/RediSearch#7453 Error behavior on early bailout and split OOM warning for shard and coordinator (MOD-12449).
- RediSearch/RediSearch#7615 Parameter
numDocsfrom non-optimized wildcard iterator (MOD-12392). - RediSearch/RediSearch#7165 (Redis Enterprise only)
FT.DROPINDEXas touches-arbitrary-keys for proper cluster handling causing crash on A-A (MOD-11090). - RediSearch/RediSearch#7023 (Redis Enterprise only) Ensure all
FT.SUG*commands are hashslot-aware to prevent cluster routing errors (MOD-11756).
Performance and resource utilization improvements
- RediSearch/RediSearch#7496 Vector search performance improvements (MOD-12011, MOD-12063, MOD-12629, MOD-12346).
- RediSearch/RediSearch#7519 Reduce number of worker threads asynchronously to improve resource utilization (MOD-12252, MOD-11658).
- RediSearch/RediSearch#7694 Use asynchronous jobs in GC for SVS to reduce blocking (MOD-12668).
- RediSearch/RediSearch#7730 Support
filter_policyandbatch_sizeparameters for vector similarity search tuning (MOD-13007, MOD-12371). - RediSearch/RediSearch#7782 Resolve SVS GC failures when worker threads are disabled (MOD-12983).
- RediSearch/RediSearch#7572 Implement ASM state machine on notifications (MOD-12170).
- RediSearch/RediSearch#7829 ASM-aware search flow for Active-Active deployments (MOD-12171, MOD-12169).
- RediSearch/RediSearch#7589 Support multiple slot ranges in
search.CLUSTERSETfor flexible cluster topology updates (MOD-11657). - RediSearch/RediSearch#7862 Support subquery count in
FT.HYBRID(MOD-11858, MOD-13146). - RediSearch/RediSearch#7893 Request policy support for cursor operations (MOD-13146, MOD-9573, MOD-8104).
- RediSearch/RediSearch#8087 Warning when cursor may give inaccurate results due to Active-Active replication (MOD-12899).
- RediSearch/RediSearch#7445 Remove outdated validation from Debug Aggregate in cluster mode (MOD-12435).
- RediSearch/RediSearch#7384 Reduce index load from RDB temporary memory overhead (MOD-12212).
Metrics
- RediSearch/RediSearch#7960 Persist query warnings across cursor reads (MOD-12984).
- RediSearch/RediSearch#7612 Track
maxprefixexpansionserrors and warnings in info (MOD-12417). - RediSearch/RediSearch#7872 Handle warnings in empty
FT.AGGREGATEreplies in cluster mode (MOD-12640). - RediSearch/RediSearch#7900 Support multiple warnings in reply (MOD-13252).
- RediSearch/RediSearch#7576 Track OOM errors and warnings in info (MOD-12418).
- RediSearch/RediSearch#7507 Track timeout errors and warnings in info (MOD-12419).
- RediSearch/RediSearch#7341 Rename
FT.PROFILEcounter fields for clarity .(MOD-6056) - RediSearch/RediSearch#7436, RediSearch/RediSearch#7427 Enhance
FT.PROFILEwith vector search execution details (MOD-12263). - RediSearch/RediSearch#7573 Debug support for
FT.PROFILEcommand (MOD-12627). - RediSearch/RediSearch#7736 Add
Internal cursor readsmetric to clusterFT.PROFILEoutput (MOD-12414). - RediSearch/RediSearch#7692 Declare query error struct on
_FT.CURSOR PROFILE(MOD-12955). - RediSearch/RediSearch#7848 Store and display shard ID in profile output (MOD-12321).
- RediSearch/RediSearch#7422 Track syntax and argument errors in query error metrics (MOD-12416).
- RediSearch/RediSearch#7552 Add
active_io_threadsmetric (MOD-12069, MOD-12695). - RediSearch/RediSearch#7622 Add
active_coord_threadsmetric (MOD-12694, MOD-12069). - RediSearch/RediSearch#7564 Add
active_worker_threadsmetric (MOD-12694, MOD-12069). - RediSearch/RediSearch#7626 Add
*_pending_jobsmetrics for job queues (MOD-12069). - RediSearch/RediSearch#7658 Add pending workers admin jobs metric (MOD-12069, MOD-12791).
- RediSearch/RediSearch#7731 Add
active_topology_update_threadsmetric (MOD-12069, MOD-12790). - RediSearch/RediSearch#7760 Extend indexing metrics for more detailed performance data (MOD-12070).
Configuration parameters
- RediSearch/RediSearch#7083 Add default scorer configuration option (MOD-10037).
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.