npm / redis
redis
What changed in redis 5 to 6, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
5 breaking67 new APIs and options15 behavior and defaults42 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initredis 684 changes
Breaking changes 5
Yields values instead of field names.
Table-recognized raw commands now follow their routing policy; target a specific node with
cluster.nodeClient(node).sendCommand(...)for per-node operations.Rejects instead of hanging when the resolved master is unreachable.
Node.js 20 is now the minimum supported runtime.
RESP3 is now the default protocol; opt into RESP2 explicitly if you need the old wire format.
New APIs and options 42
Adds MaxCommandRedirectionsError for cluster redirections.
Adds the BLMOVEM command.
Adds the COLLECT reducer to FT.AGGREGATE.
Adds support for the COMMAND DOCS command.
Adds an experimental FieldsetRegistry API for the HIMPORT managed fieldset lifecycle.
Adds support for FT.ALIASLIST.
Adds an experimental command family with managed fieldset lifecycle; its surface is unstable and should not be used in production.
Adds reviver support to ARRPOP.
Adds reviver support to GET.
Adds reviver support to MGET.
Adds the LMOVEM command.
Adds an experimental PreparedFieldsets API for the HIMPORT managed fieldset lifecycle.
Adds the missing RediSearch stemmer languages.
Adds the RERANK parameter for HNSW vector fields.
Adds the SDIFFCARD set-cardinality command.
Adds the SUNIONCARD set-cardinality command.
Adds EXCLUDEEMPTY support to TS.MRANGE.
Adds EXCLUDEEMPTY support to TS.MREVRANGE.
Adds the multi-key pivot command TS.NRANGE, including support for multiple aggregators per key.
Adds the multi-key pivot command TS.NREVRANGE, including support for multiple aggregators per key.
Adds TS.QUERYLABELS with LABELS and VALUES forms.
Adds the cursor-read command TS.READ.
XREAD gains the MAXCOUNT option.
XREAD gains the MAXSIZE option.
Adds zRevRankWithScore support for ZREVRANK WITHSCORE.
Adds a cluster method for getting the node client for a key, for use with WATCH/MULTI/EXEC.
Key prefixing is now available for Redis keys.
Adds a scan iterator for Sentinel.
Adds support for the CLIENT UNBLOCK command.
Adds a duplicate() method to RedisSentinel.
FT.AGGREGATE now allows LOAD *.
Adds support for the INCREX command.
Adds support for the INCREXBYFLOAT command.
Adds the FPHA option to JSON.SET.
Stack modules are now exposed on the pool type.
Adds support for Redis 8.8 array commands.
Adds multi-aggregation range APIs for time-series.
Adds the XNACK command and its options.
Adds the COUNT aggregator to ZINTER.
Adds the COUNT aggregator to ZINTERSTORE.
Adds the COUNT aggregator to ZUNION.
Adds the COUNT aggregator to ZUNIONSTORE.
Behavior and default changes 10
Cluster commands now use routing policies from server COMMAND metadata, including multi-key splitting, fan-out aggregation, and cluster-aware special routing.
Exposes timeout warnings on the FT.SEARCH command family.
Client connection errors are now recorded by OpenTelemetry.
The default value for commandTimeout is now 5 seconds.
The default value for keepAliveInitialDelay is now 30 seconds.
parseURL now parses unix:// URLs.
Pool classes are now publicly re-exported.
RedisClient is now publicly re-exported.
RedisCluster is now publicly re-exported.
RedisSentinel is now publicly re-exported.
Fixes and other changes 27
Handles MOVED and ASK redirects for atomic MULTI commands in clusters.
Keeps batch commands routed by slot while a cluster migration is in progress.
Caps Sentinel rediscovery retries after connecting, limiting repeated retries.
Decodes RESP3 doubles to the value sent by the server.
Abort and timeout listeners are rebound when a command moves to another queue.
Commands are rejected before cluster topology is ready.
The in-flight connect attempt is rejected if the socket dies during the initiator.
Emits the DB argument when its value is 0.
Drains the write queue when extracting all commands.
Preserves zero scores.
Encodes Date values for PXAT in milliseconds.
Emits SAMPLES when its value is 0.
The pool timeout error message now includes the acquire-timeout duration.
Emits FREQ when its value is 0.
Emits IDLETIME when its value is 0.
Emits LIMIT when its value is 0.
Emits ENTRIESREAD when its value is 0.
Emits ENTRIESREAD when its value is 0.
Emits ENTRIESADDED when its value is 0.
Emits LIMIT when its value is 0.
Aligns the RESP default in RedisClientOptions with RedisClientType.
Preserves seed nodes in sentinelRootNodes after a topology update.
The entraid package upgrades @azure/msal-node to 5.x to drop a vulnerable transitive uuid dependency.
Sharded pubsub topology is recovered after a cluster node reconnects.
Sentinel pubsub connections use the mapped address when failover moves them.
Fixes handling of wrapper command options.
The client now swallows synchronous EPIPE errors from writeAfterFIN.
redis 545 changes
New APIs and options 25
Adds low-overhead event streams for tracking runtime behavior, including commands, batches, connections, Pub/Sub, cache, and pool wait timing.
Adds OpenTelemetry metrics instrumentation; initialize OpenTelemetry before creating clients to connect telemetry to an existing OTel SDK/exporter pipeline.
Exposes sendCommand on multi for all clients.
Adds sSubscribe and sUnsubscribe methods to the Sentinel client.
Adds a local digest helper for CAS/CAD operations.
Adds the HOTKEYS command family to track and identify hot keys by CPU time and network bytes.
Adds NaN support to the time-series client.
Adds nodeAddressMap support for Sentinel.
Adds the socket.servname property to createClient configuration.
Adds new time-series aggregation types.
Adds client support for the VRANGE command for vector sets.
Adds idempotency options to prevent duplicate entries by tracking producer and message IDs.
Adds a command to configure per-stream idempotency parameters.
Adds idempotency tracking fields to the stream information response.
Adds experimental support for the CAD command.
Adds experimental support for the CAS command.
Adds experimental support for the DELEX command.
Adds experimental support for the DIGEST command.
Adds experimental support for HYBRID search.
Adds an experimental latency histogram.
Adds support for the MSETEX command.
Adds support for the CLAIM attribute on XREADGROUP.
Adds cluster and node events.
Adds support for hitless upgrades.
Multi-commands support typed and untyped modes.
Behavior and default changes 5
The client handles SMIGRATING and SMIGRATED push notifications by relaxing timeouts during migration and handing off slots when migration completes.
Allows indexing the same field multiple times with different configurations.
Adds default modules to client pools.
The client emits invalidate events.
Extends proxy behavior.
Fixes and other changes 15
Corrects the placement of INDEXMISSING.
Preserves root seeds for outage recovery in Sentinel.
Cluster functions now return Promise consistently.
Improves the FT.HYBRID command implementation.
Constructors are unwrapped to primitives in type mapping.
Supports IPv6 literals in URLs.
Prevents a false-ready state when socket errors occur during the handshake.
Stops parsing number properties in XREADGROUP.
Fixes corruption of multi-byte characters when converting Buffers to strings.
Fixes the client kill enums.
Prevents an infinite loop in cluster behavior.
The cluster type now uses all commands.
The pool now uses the options provided when it is created.
The command now returns its count as a number.
Shard subscriptions now properly resubscribe after failover.