Cluster clients now handle MOVED/ASK redirects for atomic MULTI and keep batch commands routed by slot during migration, plus a new MaxCommandRedirectionsError. Stale data listeners are removed on socket errors, credential subscriptions are disposed on every close, and RESP3 doubles decode to the value the server sent.
node-redis
npx @buildinternet/releases get node-redisCluster commands now follow the server's request/response policies, transparently splitting multi-key commands across hash slots and aggregating replies. Raw sendCommand now follows policy instead of hitting a single node — use cluster.nodeClient(node).sendCommand(...) for per-node operations. Also adds HIMPORT (experimental) and broad new command coverage across time-series, search, and core.
New time-series commands (TS.NRANGE, TS.NREVRANGE, TS.READ, TS.QUERYLABELS, EXCLUDEEMPTY, multi-aggregator), RediSearch additions (FT.ALIASLIST, COLLECT reducer, HNSW RERANK, timeout warnings, stemmer languages), and core client commands (SUNIONCARD, SDIFFCARD, LMOVEM, BLMOVEM, ZREVRANK WITHSCORE, COMMAND DOCS, XREAD MAXCOUNT/MAXSIZE). A large batch of fixes ensures zero-valued optional arguments (LIMIT 0, DB 0, SAMPLES 0, etc.) are no longer dropped from the wire, plus cluster and sentinel connection-lifecycle fixes. The HIMPORT command family is experimental.
Commands can now automatically prefix keys via a new keyPrefix option, and cluster clients can call getNodeClientForKey to target WATCH/MULTI/EXEC transactions to a specific node.
Aligned RedisClientOptions RESP default with RedisClientType, and Sentinel seed nodes are now preserved in sentinelRootNodes after topology updates. Also includes embedded sourcemaps in emitted builds and a Sentinel scan iterator.
RESP3 is now the default protocol (opt back into RESP2 explicitly), and Node.js 20 is the new minimum supported version. New commands include CLIENT UNBLOCK, XNACK, Redis 8.8 array commands, INCREX/INCREXBYFLOAT, and ZINTER/ZUNION COUNT aggregator. Fixed pubsub connection handling in Sentinel failover and sharded cluster topology recovery, and a CVE-2026-41907 vulnerability via @azure/msal-node.
✨ What's Changed
🚀 Features
- feat: expose
sendCommandonmultifor all clients by @nkaradzhov in https://github.com/redis/node-redis/pull/3181 - feat(sentinel): add
sSubscribe/sUnsubscribemethods to Sentinel client by @nkaradzhov in…
5.11.0 Release Changelog
🌟 Highlights
Smart Client Handoffs for Enterprise OSS API (Pending a Redis Enterprise version release)
This release introduces support for Redis Enterprise Cluster maintenance notifications via SMIGRATING/SMIGRATED push…
Changes
🚀 New Features
- Add MSETEX command support (#3116)
- Add CLAIM attribute to XREADGROUP command (#3122)
- Add index/query doc page examples (#3109)
🧪 Experimental Features
- Add support for CAS/CAD, DELEX, DIGEST commands (#3123)
- Add support for…
What's Changed
- fix(ts): use all commands in cluster type by @nkaradzhov in https://github.com/redis/node-redis/pull/3065
- Main by @watersRand in https://github.com/redis/node-redis/pull/3047
- docs: fix scanIterator example in readme by @nkaradzhov in…
What's Changed
- Fix: resolve doubly linked list push issue by @ntvviktor in https://github.com/redis/node-redis/pull/3085
- Update default Redis version to 8.4-M01-pre in tests by @bobymicroby in https://github.com/redis/node-redis/pull/3092
- Adjust scenario tests…
What's Changed
- fix: add typed/untyped mode support for multi-commands by @PavelPashov in https://github.com/redis/node-redis/pull/3084
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.2...redis@5.8.3
What's Changed
- feat: add default modules to createClientPool by @killagu in https://github.com/redis/node-redis/pull/3088
- DOC-5743 BITOP examples by @andy-stark-redis in https://github.com/redis/node-redis/pull/3087
- feat: add typed/untyped mode support for…
What's Changed
- fix(cluster): prevent infinite loop by @nkaradzhov in https://github.com/redis/node-redis/pull/3078
- docs: update RedisJSON documentation link by @Caiuriuller in https://github.com/redis/node-redis/pull/3079
- refactor(test): improve test scenario…
What's Changed
- fix(ts): use all commands in cluster type by @nkaradzhov in https://github.com/redis/node-redis/pull/3065
- Main by @watersRand in https://github.com/redis/node-redis/pull/3047
- docs: fix scanIterator example in readme by @nkaradzhov in…
What's Changed
- Clustering sendCommand docs by @nfriedly in https://github.com/redis/node-redis/pull/3053
- Stop erasing
ErrorReplystack by @dxg in https://github.com/redis/node-redis/pull/3050 - Call out sendCommand cluster difference in readme by @nfriedly in…
What's Changed
- chore(tests): bump test container version 8.2 by @nkaradzhov in https://github.com/redis/node-redis/pull/3046
- fix(commands): expire, expireAt are not readonly by @nkaradzhov in https://github.com/redis/node-redis/pull/3045
- fix: parse database from…
What's Changed
- Add support svs vamana index creation by @PavelPashov in https://github.com/redis/node-redis/pull/3025
- createClient url+tls invariant violation check by @dearlordylord in https://github.com/redis/node-redis/pull/2835
New Contributors
*…
What's Changed
- fix(pool): chain promise handlers to prevent unhandled rejections by @PavelPashov in https://github.com/redis/node-redis/pull/3035
- Add Redis 8.2 New Stream Commands by @PavelPashov in https://github.com/redis/node-redis/pull/3029
- DOC-5473 added time…
What's Changed
- docs: fix hyperlink for lua scripts, functions by @cloneot in https://github.com/redis/node-redis/pull/3015
- fix(search): adjust field types for ft.search by @nkaradzhov in https://github.com/redis/node-redis/pull/3018
- fix(client): make socket.host not…
