Redis Knowledge Patch
Use this skill when upgrading, securing, configuring, or developing against
Redis Open Source. Start with release and topology discovery, check the
security floor and ACL implications, and then open the reference for the
affected command family or operational task.
Reference index
| Reference |
Topics |
| security-and-upgrades.md |
Security floors, integrated components, upgrades, ACL scope, TLS authentication, tested platforms |
| data-structures-and-commands.md |
Arrays, hashes, strings, counters, lists, sets, streams, bit operations, sorted sets, notifications, Cuckoo Filters |
| search-json-and-timeseries.md |
Vector and hybrid Search, aliases and stemming, JSON arrays, Time Series queries and aggregation |
| operations-cluster-and-modules.md |
Memory, eviction, telemetry, backup, atomic slot migration, module hooks |
Working method
- Identify the exact Redis release, deployment topology, persistence mode,
and enabled components before applying version-sensitive advice.
- Check the security floor for the deployed minor line. Do not treat the
patch number from a different minor line as an equivalent fix.
- Re-audit ACL rules when moving from standalone modules or Redis Stack to
integrated Redis components.
- Check persistence and cluster caveats before enabling stream idempotency,
backup workflows, or slot migration.
- Open the topic reference before implementing an affected command. It holds
maintenance-release floors and restrictions omitted from this quick view.
Breaking, security, and compatibility checks
Patch security-sensitive deployments first
Choose a fixed release from the deployed minor line. Important minimums
include:
| Issue |
Fixed release or releases |
redis-check-aof stack overflow with RCE impact |
8.0.2 |
| HyperLogLog out-of-bounds writes |
8.0.3 |
| Four Lua memory and isolation issues |
8.0.4 |
| Probabilistic-filter memory-safety failures |
8.0.5 |
| CRLF error-reply injection |
8.0.6 |
XACKDEL stack overflow with RCE impact |
8.2.3 |
| Response injection |
8.2.5, 8.4.2, or 8.6.1 |
| Five RCE-capable invalid-memory paths |
8.2.6, 8.4.3, or 8.6.3 |
| Module-string reply-copy use-after-free |
8.6.2 |
Stream consumer-group RESTORE use-after-free |
8.2.8, 8.4.5, or 8.6.5 |
MSETEX ACL key-pattern bypass |
8.4.4 |
SENTINEL SET configuration injection |
8.6.4 |
Crafted RedisBloom and TDigest RESTORE writes |
8.8.1 |
| Redis 8.10 memory-safety and TLS authentication issues |
8.10.1 |
The five-path RCE group spans client unblock, RESTORE, Lua, Time Series,
and probabilistic structures. The 8.10.1 group includes CMSketch RDB loading,
TopK cleanup, the TLS pending-data list, SLOT_INFO RDB loading, three Vector
Set paths, blocked-client reprocessing, and an embedded-NUL certificate bypass.
Account for integrated components
Search, JSON, Time Series, Bloom, Cuckoo, Count-min sketch, Top-k, and t-digest
are integral components beginning in Redis 8. Binary distributions include
them, redis-full.conf loads them all, and Vector Set is preview functionality.
Replication and persistence upgrades can start from module-free Redis, Redis
using the former standalone modules, or Redis Stack 7.2 or 7.4. Plan component
packaging and ACL changes as part of the same migration.
Re-audit ACLs
Broad categories such as @read and @write include commands from the
integrated components. Replace unintended broad grants with narrower
@search, @json, @timeseries, @bloom, @cuckoo, @cms, @topk, and
@tdigest rules.
Search index access also depends on key patterns: a user's patterns must cover
a superset of the index prefixes. Multi-key Time Series reads fail if any
matching key is unreadable, while TS.QUERYINDEX reads metadata without
requiring read access to those keys.
Remove obsolete vector assumptions
The proprietary LeanVec and LVQ Intel optimizations are absent from Redis Open
Source starting in 8.2.1. Redis 8.2 provides compressed SVS-VAMANA; 8.2.2
allows the BUILD_INTEL_SVS_OPT build flag for Intel optimizations.
Respect persistence and migration caveats
XADD IDMPAUTO and IDMP arrived in Redis 8.6. Redis 8.6.0 warns against
combining them with appendonly yes and aof-use-rdb-preamble no; Redis 8.6.2
fixes AOF rewrite and restoration of idempotency state.
CLUSTER MIGRATION moves slots atomically, but affected Search and Time Series
multi-key queries can still return partial or duplicate results while a
migration is in progress.
High-value command changes
Strings, counters, hashes, and sets
DIGEST, DELEX, and SET extensions support atomic compare-and-set and
compare-and-delete flows on strings.
MSETEX atomically writes multiple string keys and updates expiration.
INCREX combines integer or floating-point increments, bounds, and
expiration for window-counter rate limiting.
- Compact hashes share field names among keys with the same schema;
HIMPORT
provides high-throughput bulk insertion for that encoding.
SUNIONCARD and SDIFFCARD return union and difference cardinalities.
Lists and streams
LMOVEM and blocking BLMOVEM move multiple list elements.
XDELEX, XACKDEL, and extensions to XADD and XTRIM add DELREF and
ACKED deletion-reference strategies.
XREADGROUP CLAIM min-idle-time combines sufficiently idle pending entries
and incoming entries in one read.
XADD IDMPAUTO and IDMP provide at-most-once production;
stream-idmp-duration and stream-idmp-maxsize supply defaults.
XNACK lets a consumer explicitly release pending messages.
XREAD and XREADGROUP accept MAXCOUNT and MAXSIZE reply bounds.
Core structures and notifications
- Array is a Redis data structure.
BITOP supports DIFF, DIFF1, ANDOR, and ONE.
ZUNION, ZINTER, ZUNIONSTORE, and ZINTERSTORE accept the COUNT
aggregator.
OVERWRITTEN reports full replacement, TYPE_CHANGED reports a type
change, and hash subkey notifications emit field-level events.
- Replicated
CF.LOADCHUNK chunks prevent silent Cuckoo Filter loss after
failover on fixed maintenance releases.
Search, JSON, and Time Series
Vector and hybrid Search
VSIM WITHATTRIBS returns an element's JSON attribute; EPSILON supplies a
maximum distance.
FT.HYBRID combines result sets with RRF or LINEAR scoring.
- In the original Redis 8.4 behavior, filtering after
COMBINE is unavailable,
the default response contains only key_id and score, and EXPLAINSCORE,
YIELD_DISTANCE_AS, and WITHCURSOR are unsupported.
- A newer
KNN argument requests fewer candidates per shard, and
FT.PROFILE HYBRID profiles hybrid queries.
search-default-scorer sets the default text and tag scorer; BM25STD is
the new default.
FT.ALIASLIST enumerates index aliases, and Search supports Malay and
Tagalog stemming.
FT.CREATE and FT.ALTER reject empty field names.
JSON and Time Series
JSON.SET FPHA selects the floating-point type for a homogeneous
floating-point array.
TS.RANGE, TS.REVRANGE, TS.MRANGE, and TS.MREVRANGE can apply multiple
aggregators in one command.
- Time Series accepts NaN and provides
COUNTNAN and COUNTALL.
TS.NRANGE and TS.NREVRANGE query multiple series grouped by timestamp.
TS.READ optionally blocks while reading from time series.
TS.QUERYLABELS discovers labels and their values.
TS.MRANGE and TS.MREVRANGE EXCLUDEEMPTY omit series with no samples.
Operations quick reference
- Runtime memory tracking can be enabled only in non-clustered mode.
volatile-lrm and allkeys-lrm select least-recently-modified eviction.
HOTKEYS detects hot keys; HOTKEYS HELP is available from 8.6.1.
INFO KEYSIZES reports size distributions for basic data types.
CLUSTER SLOT-STATS reports per-slot key count, CPU time, and network I/O.
key-memory-histograms collects per-type histograms and exposes database
distribution metrics for lists, sets, hashes, and sorted sets.
BACKUP performs node-side backup and restore using multi-part AOF.
- Modules can read and write Redis configuration and selectively unsubscribe
from keyspace notifications.
tls-auth-clients-user maps client certificates to a user; failed attempts
increment acl_access_denied_tls_cert.
- Server-to-server TLS connections can authenticate peers by certificate.
Read the indexed reference before implementing any affected behavior. The
references preserve exact maintenance floors, ACL boundaries, persistence
warnings, topology restrictions, and command-specific constraints.
1---2name: redis-knowledge-patch-23description: Redis4license: MIT5---678# Redis Knowledge Patch910Use this skill when upgrading, securing, configuring, or developing against11Redis Open Source. Start with release and topology discovery, check the12security floor and ACL implications, and then open the reference for the13affected command family or operational task.1415## Reference index1617| Reference | Topics |18| --- | --- |19| [security-and-upgrades.md](references/security-and-upgrades.md) | Security floors, integrated components, upgrades, ACL scope, TLS authentication, tested platforms |20| [data-structures-and-commands.md](references/data-structures-and-commands.md) | Arrays, hashes, strings, counters, lists, sets, streams, bit operations, sorted sets, notifications, Cuckoo Filters |21| [search-json-and-timeseries.md](references/search-json-and-timeseries.md) | Vector and hybrid Search, aliases and stemming, JSON arrays, Time Series queries and aggregation |22| [operations-cluster-and-modules.md](references/operations-cluster-and-modules.md) | Memory, eviction, telemetry, backup, atomic slot migration, module hooks |2324## Working method25261. Identify the exact Redis release, deployment topology, persistence mode,27 and enabled components before applying version-sensitive advice.282. Check the security floor for the deployed minor line. Do not treat the29 patch number from a different minor line as an equivalent fix.303. Re-audit ACL rules when moving from standalone modules or Redis Stack to31 integrated Redis components.324. Check persistence and cluster caveats before enabling stream idempotency,33 backup workflows, or slot migration.345. Open the topic reference before implementing an affected command. It holds35 maintenance-release floors and restrictions omitted from this quick view.3637## Breaking, security, and compatibility checks3839### Patch security-sensitive deployments first4041Choose a fixed release from the deployed minor line. Important minimums42include:4344| Issue | Fixed release or releases |45| --- | --- |46| `redis-check-aof` stack overflow with RCE impact | 8.0.2 |47| HyperLogLog out-of-bounds writes | 8.0.3 |48| Four Lua memory and isolation issues | 8.0.4 |49| Probabilistic-filter memory-safety failures | 8.0.5 |50| CRLF error-reply injection | 8.0.6 |51| `XACKDEL` stack overflow with RCE impact | 8.2.3 |52| Response injection | 8.2.5, 8.4.2, or 8.6.1 |53| Five RCE-capable invalid-memory paths | 8.2.6, 8.4.3, or 8.6.3 |54| Module-string reply-copy use-after-free | 8.6.2 |55| Stream consumer-group `RESTORE` use-after-free | 8.2.8, 8.4.5, or 8.6.5 |56| `MSETEX` ACL key-pattern bypass | 8.4.4 |57| `SENTINEL SET` configuration injection | 8.6.4 |58| Crafted RedisBloom and TDigest `RESTORE` writes | 8.8.1 |59| Redis 8.10 memory-safety and TLS authentication issues | 8.10.1 |6061The five-path RCE group spans client unblock, `RESTORE`, Lua, Time Series,62and probabilistic structures. The 8.10.1 group includes CMSketch RDB loading,63TopK cleanup, the TLS pending-data list, `SLOT_INFO` RDB loading, three Vector64Set paths, blocked-client reprocessing, and an embedded-NUL certificate bypass.6566### Account for integrated components6768Search, JSON, Time Series, Bloom, Cuckoo, Count-min sketch, Top-k, and t-digest69are integral components beginning in Redis 8. Binary distributions include70them, `redis-full.conf` loads them all, and Vector Set is preview functionality.7172Replication and persistence upgrades can start from module-free Redis, Redis73using the former standalone modules, or Redis Stack 7.2 or 7.4. Plan component74packaging and ACL changes as part of the same migration.7576### Re-audit ACLs7778Broad categories such as `@read` and `@write` include commands from the79integrated components. Replace unintended broad grants with narrower80`@search`, `@json`, `@timeseries`, `@bloom`, `@cuckoo`, `@cms`, `@topk`, and81`@tdigest` rules.8283Search index access also depends on key patterns: a user's patterns must cover84a superset of the index prefixes. Multi-key Time Series reads fail if any85matching key is unreadable, while `TS.QUERYINDEX` reads metadata without86requiring read access to those keys.8788### Remove obsolete vector assumptions8990The proprietary LeanVec and LVQ Intel optimizations are absent from Redis Open91Source starting in 8.2.1. Redis 8.2 provides compressed `SVS-VAMANA`; 8.2.292allows the `BUILD_INTEL_SVS_OPT` build flag for Intel optimizations.9394### Respect persistence and migration caveats9596`XADD IDMPAUTO` and `IDMP` arrived in Redis 8.6. Redis 8.6.0 warns against97combining them with `appendonly yes` and `aof-use-rdb-preamble no`; Redis 8.6.298fixes AOF rewrite and restoration of idempotency state.99100`CLUSTER MIGRATION` moves slots atomically, but affected Search and Time Series101multi-key queries can still return partial or duplicate results while a102migration is in progress.103104## High-value command changes105106### Strings, counters, hashes, and sets107108- `DIGEST`, `DELEX`, and `SET` extensions support atomic compare-and-set and109 compare-and-delete flows on strings.110- `MSETEX` atomically writes multiple string keys and updates expiration.111- `INCREX` combines integer or floating-point increments, bounds, and112 expiration for window-counter rate limiting.113- Compact hashes share field names among keys with the same schema; `HIMPORT`114 provides high-throughput bulk insertion for that encoding.115- `SUNIONCARD` and `SDIFFCARD` return union and difference cardinalities.116117### Lists and streams118119- `LMOVEM` and blocking `BLMOVEM` move multiple list elements.120- `XDELEX`, `XACKDEL`, and extensions to `XADD` and `XTRIM` add `DELREF` and121 `ACKED` deletion-reference strategies.122- `XREADGROUP CLAIM min-idle-time` combines sufficiently idle pending entries123 and incoming entries in one read.124- `XADD IDMPAUTO` and `IDMP` provide at-most-once production;125 `stream-idmp-duration` and `stream-idmp-maxsize` supply defaults.126- `XNACK` lets a consumer explicitly release pending messages.127- `XREAD` and `XREADGROUP` accept `MAXCOUNT` and `MAXSIZE` reply bounds.128129### Core structures and notifications130131- Array is a Redis data structure.132- `BITOP` supports `DIFF`, `DIFF1`, `ANDOR`, and `ONE`.133- `ZUNION`, `ZINTER`, `ZUNIONSTORE`, and `ZINTERSTORE` accept the `COUNT`134 aggregator.135- `OVERWRITTEN` reports full replacement, `TYPE_CHANGED` reports a type136 change, and hash subkey notifications emit field-level events.137- Replicated `CF.LOADCHUNK` chunks prevent silent Cuckoo Filter loss after138 failover on fixed maintenance releases.139140## Search, JSON, and Time Series141142### Vector and hybrid Search143144- `VSIM WITHATTRIBS` returns an element's JSON attribute; `EPSILON` supplies a145 maximum distance.146- `FT.HYBRID` combines result sets with RRF or LINEAR scoring.147- In the original Redis 8.4 behavior, filtering after `COMBINE` is unavailable,148 the default response contains only `key_id` and `score`, and `EXPLAINSCORE`,149 `YIELD_DISTANCE_AS`, and `WITHCURSOR` are unsupported.150- A newer `KNN` argument requests fewer candidates per shard, and151 `FT.PROFILE HYBRID` profiles hybrid queries.152- `search-default-scorer` sets the default text and tag scorer; `BM25STD` is153 the new default.154- `FT.ALIASLIST` enumerates index aliases, and Search supports Malay and155 Tagalog stemming.156- `FT.CREATE` and `FT.ALTER` reject empty field names.157158### JSON and Time Series159160- `JSON.SET FPHA` selects the floating-point type for a homogeneous161 floating-point array.162- `TS.RANGE`, `TS.REVRANGE`, `TS.MRANGE`, and `TS.MREVRANGE` can apply multiple163 aggregators in one command.164- Time Series accepts NaN and provides `COUNTNAN` and `COUNTALL`.165- `TS.NRANGE` and `TS.NREVRANGE` query multiple series grouped by timestamp.166- `TS.READ` optionally blocks while reading from time series.167- `TS.QUERYLABELS` discovers labels and their values.168- `TS.MRANGE` and `TS.MREVRANGE EXCLUDEEMPTY` omit series with no samples.169170## Operations quick reference171172- Runtime memory tracking can be enabled only in non-clustered mode.173- `volatile-lrm` and `allkeys-lrm` select least-recently-modified eviction.174- `HOTKEYS` detects hot keys; `HOTKEYS HELP` is available from 8.6.1.175- `INFO KEYSIZES` reports size distributions for basic data types.176- `CLUSTER SLOT-STATS` reports per-slot key count, CPU time, and network I/O.177- `key-memory-histograms` collects per-type histograms and exposes database178 distribution metrics for lists, sets, hashes, and sorted sets.179- `BACKUP` performs node-side backup and restore using multi-part AOF.180- Modules can read and write Redis configuration and selectively unsubscribe181 from keyspace notifications.182- `tls-auth-clients-user` maps client certificates to a user; failed attempts183 increment `acl_access_denied_tls_cert`.184- Server-to-server TLS connections can authenticate peers by certificate.185186Read the indexed reference before implementing any affected behavior. The187references preserve exact maintenance floors, ACL boundaries, persistence188warnings, topology restrictions, and command-specific constraints.