
# Redis 8.4

What's new in Redis 8.4

Redis 8.4 builds on the foundation of Redis 8.2 with significant enhancements to cluster operations, string manipulation, and stream processing capabilities.

This release delivers major improvements across multiple areas:

*   Atomic cluster slot migration for zero-downtime operations
*   Enhanced string operations with atomic compare-and-set functionality
*   Advanced stream processing with idle entry claiming
*   Hybrid search capabilities combining multiple ranking algorithms
*   High-performance SIMD optimizations for bit operations and vector processing
*   Improved JSON handling with better memory efficiency

Below is a detailed breakdown of these updates.

## New features

### Atomic cluster operations

Redis 8.4 introduces the [`CLUSTER MIGRATION`](/docs/latest/commands/cluster-migration/) command, which enables atomic slot migration between cluster nodes. This command ensures zero-downtime cluster operations by moving slots and their associated data in a single atomic operation, eliminating the brief unavailability window that previously occurred during slot migrations.

### Enhanced string operations

Redis 8.4 extends string manipulation capabilities with powerful new commands that enable atomic compare-and-set operations:

*   [`DELEX`](/docs/latest/commands/delex/): Delete a key only if its value matches a specified condition.
*   [`DIGEST`](/docs/latest/commands/digest/): Generate cryptographic digests of key values for integrity verification.

The [`SET`](/docs/latest/commands/set/) command now supports atomic compare-and-set and compare-and-delete operations through new extensions, enabling you to implement lock-free data structures and optimistic concurrency control patterns.

### Multi-key expiration management

The new [`MSETEX`](/docs/latest/commands/msetex/) command allows you to set multiple keys and update their expiration times in a single atomic operation. This simplifies batch operations where you need to maintain consistent TTL values across related keys.

### Advanced stream processing

Redis 8.4 enhances stream processing with the `CLAIM min-idle-time` option for [`XREADGROUP`](/docs/latest/commands/xreadgroup/). This feature enables consumer groups to automatically claim and process both idle pending entries and new incoming entries in a single operation, simplifying consumer group management and improving processing efficiency.

### Hybrid search capabilities

The new `FT.HYBRID` command introduces hybrid queries that combine multiple ranking algorithms using Reciprocal Rank Fusion (RRF) and linear combination methods. This enables you to create sophisticated search experiences that leverage both semantic similarity and traditional text matching.

### Enhanced AOF reliability

Redis 8.4 introduces auto-repair options for corrupted AOF (Append Only File) tails during startup. The new `aof-load-corrupt-tail-max-size` configuration parameter allows Redis to automatically repair minor AOF corruption, improving system resilience and reducing manual intervention requirements.

## Improvements

Redis 8.4 delivers substantial performance improvements through advanced SIMD optimizations and enhanced algorithms.

### Performance optimizations

*   **BITCOUNT**: Enhanced with AVX2 and AVX512 popcount implementations for x86 architectures, plus Arm Neon SIMD vectorization for ARM processors.
*   **HyperLogLog**: Optimized with branchless comparisons and Arm Neon SIMD vectorization for improved cardinality estimation performance.
*   **Vector operations**: `VADD` and `VSIM` commands benefit from AVX2 and AVX512 dot product implementations for faster vector processing.
*   **Command processing**: New lookahead prefetching parses multiple commands in advance through a lookahead pipeline, reducing processing latency.

### Memory efficiency improvements

*   **JSON data types**: Improved memory footprint through homogeneous array optimization and short string inlining.
*   **Lua integration**: Enhanced JSON array handling with the new `decode_array_with_array_mt` configuration parameter for better memory utilization.

### Search and indexing enhancements

Redis 8.4 introduces several improvements to search functionality:

*   **Default scoring**: The new `search-default-scorer` parameter sets BM25STD as the default text and tag scorer, providing better relevance ranking out of the box.
*   **OOM handling**: The `search-on-oom` parameter controls query behavior during out-of-memory conditions, with options to ignore, fail, or return partial results.
*   **Multi-threading**: The `search-io-threads` parameter allows you to configure communication threads for cluster manager coordination, improving search performance in clustered environments.
*   **Index updates**: Search indexes now support updates during atomic slot migrations, maintaining search functionality during cluster operations.

### Enhanced configuration

Redis 8.4 introduces new configuration parameters that give you greater control over system behavior:

*   `lookahead`: Runtime-configurable lookahead depth for command prefetching (default: 16)
*   `aof-load-corrupt-tail-max-size`: Maximum corrupted tail size for automatic AOF repair
*   `decode_array_with_array_mt`: Controls how Lua handles empty JSON arrays

## Component versions

Redis 8.4 continues the unified distribution approach, delivering all functionality in a single Redis Open Source package without separate modules. This includes:

*   **RedisTimeSeries**: Enhanced with `HELP` and `COMMAND DOCS` support for time series commands
*   **RedisBloom**: Improved with `HELP` and `COMMAND DOCS` support for probabilistic commands
*   **RediSearch**: Advanced hybrid search capabilities and improved cluster coordination

## Known limitations

When using Redis 8.4, be aware of these current limitations:

*   Search commands (`FT.SEARCH`, `FT.AGGREGATE`, `FT.CURSOR`, `FT.HYBRID`) and time series commands (`TS.MGET`, `TS.MRANGE`, `TS.MREVRANGE`, `TS.QUERYINDEX`) may return partial results or duplicates during atomic slot migration.
*   `FT.PROFILE`, `FT.EXPLAIN`, and `FT.EXPLAINCLI` don't include `FT.HYBRID` options.
*   `FT.HYBRID` metrics aren't displayed in `FT.INFO` and `INFO` commands.
*   Several `FT.HYBRID` options (`EXPLAINSCORE`, `SHARD_K_RATIO`, `YIELD_DISTANCE_AS`, `WITHCURSOR`) are not yet available.
*   Post-filtering after the `COMBINE` step using `FILTER` is not currently supported.

## On this page
