Update dependency redis to v6.2.0 #158

Merged
jonathan merged 1 commit from renovate/redis-6.x-lockfile into main 2026-08-08 07:45:31 +00:00
Collaborator

This PR contains the following updates:

Package Type Update Change
redis dependencies minor 6.1.06.2.0

Release Notes

redis/node-redis (redis)

v6.2.0

Compare Source

6.2.0

Highlights

Cluster commands now follow the server's request/response policies. node-redis reads each command's routing policy from the server's COMMAND metadata and routes and aggregates accordingly, so the cluster client behaves much more like a single server. Multi-key commands that span hash slots — MGET, MSET, DEL, EXISTS, TOUCH, UNLINK — are transparently split per slot and their replies reassembled in caller order, so cross-slot calls that previously failed with CROSSSLOT now just work. Fan-out commands such as KEYS, DBSIZE, FLUSHALL, PING, WAIT, SCRIPT EXISTS and CONFIG SET run across every shard (or every node) and their replies are aggregated per the server's policy, SCAN walks the whole cluster behind a per-client virtual cursor, and RANDOMKEY / FT.CURSOR get correct cluster-aware routing. Replica read-scaling was also aligned with the server flags, so read-only keyless commands (DBSIZE, KEYS, SCAN, RANDOMKEY, and the RediSearch / time-series reads) can be served from replicas again.

⚠️ Behavior change for the raw sendCommand path: a table-recognized command sent raw — e.g. cluster.sendCommand(['DBSIZE']) — now follows its policy (fan-out and aggregate) instead of hitting a single node. Callers who relied on raw commands for per-node operations should target a specific node with cluster.nodeClient(node).sendCommand(...).

This release also brings a broad wave of new command coverage across the client and modules. The time-series package gains the most: new TS.NRANGE/TS.NREVRANGE multi-key pivot commands, a TS.READ cursor reader, TS.QUERYLABELS, EXCLUDEEMPTY on MRANGE/MREVRANGE, and multi-aggregator support. RediSearch adds FT.ALIASLIST, a COLLECT reducer for FT.AGGREGATE, HNSW RERANK, timeout warnings on the FT.SEARCH family, and the full set of stemmer languages. The core client adds SUNIONCARD/SDIFFCARD, LMOVEM/BLMOVEM, ZREVRANK WITHSCORE, COMMAND DOCS, and XREAD MAXCOUNT/MAXSIZE. A large batch of correctness fixes lands for zero-valued optional arguments (LIMIT 0, DB 0, SAMPLES 0, ENTRIESREAD 0, IDLETIME/FREQ 0, ENTRIESADDED 0) that were previously dropped from the wire, alongside several cluster and sentinel connection-lifecycle fixes.

The new HIMPORT command family (managed fieldset lifecycle) ships as experimental — see the warning below.

🚀 New Features
⚠️ Experimental
  • feat(client): add HIMPORT command family with managed fieldset lifecycle (#​3381) — @​nkaradzhov. The HIMPORT family and its FieldsetRegistry/PreparedFieldsets API are experimental and unstable; the surface may change or be removed in a future release. Do not depend on it in production.
🐛 Bug Fixes
🧰 Maintenance
New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@6.1.0...redis@6.2.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [redis](https://github.com/redis/node-redis) | dependencies | minor | [`6.1.0` → `6.2.0`](https://renovatebot.com/diffs/npm/redis/6.1.0/6.2.0) | --- ### Release Notes <details> <summary>redis/node-redis (redis)</summary> ### [`v6.2.0`](https://github.com/redis/node-redis/releases/tag/redis%406.2.0) [Compare Source](https://github.com/redis/node-redis/compare/redis@6.1.0...redis@6.2.0) #### 6.2.0 ##### ✨ Highlights **Cluster commands now follow the server's request/response policies.** node-redis reads each command's routing policy from the server's `COMMAND` metadata and routes and aggregates accordingly, so the cluster client behaves much more like a single server. Multi-key commands that span hash slots — `MGET`, `MSET`, `DEL`, `EXISTS`, `TOUCH`, `UNLINK` — are transparently split per slot and their replies reassembled in caller order, so cross-slot calls that previously failed with `CROSSSLOT` now just work. Fan-out commands such as `KEYS`, `DBSIZE`, `FLUSHALL`, `PING`, `WAIT`, `SCRIPT EXISTS` and `CONFIG SET` run across every shard (or every node) and their replies are aggregated per the server's policy, `SCAN` walks the whole cluster behind a per-client virtual cursor, and `RANDOMKEY` / `FT.CURSOR` get correct cluster-aware routing. Replica read-scaling was also aligned with the server flags, so read-only keyless commands (`DBSIZE`, `KEYS`, `SCAN`, `RANDOMKEY`, and the RediSearch / time-series reads) can be served from replicas again. ⚠️ **Behavior change for the raw `sendCommand` path:** a table-recognized command sent raw — e.g. `cluster.sendCommand(['DBSIZE'])` — now follows its policy (fan-out and aggregate) instead of hitting a single node. Callers who relied on raw commands for per-node operations should target a specific node with `cluster.nodeClient(node).sendCommand(...)`. This release also brings a broad wave of new command coverage across the client and modules. The time-series package gains the most: new `TS.NRANGE`/`TS.NREVRANGE` multi-key pivot commands, a `TS.READ` cursor reader, `TS.QUERYLABELS`, `EXCLUDEEMPTY` on `MRANGE`/`MREVRANGE`, and multi-aggregator support. RediSearch adds `FT.ALIASLIST`, a `COLLECT` reducer for `FT.AGGREGATE`, HNSW `RERANK`, timeout warnings on the `FT.SEARCH` family, and the full set of stemmer languages. The core client adds `SUNIONCARD`/`SDIFFCARD`, `LMOVEM`/`BLMOVEM`, `ZREVRANK WITHSCORE`, `COMMAND DOCS`, and `XREAD MAXCOUNT`/`MAXSIZE`. A large batch of correctness fixes lands for zero-valued optional arguments (`LIMIT 0`, `DB 0`, `SAMPLES 0`, `ENTRIESREAD 0`, `IDLETIME`/`FREQ 0`, `ENTRIESADDED 0`) that were previously dropped from the wire, alongside several cluster and sentinel connection-lifecycle fixes. The new **HIMPORT** command family (managed fieldset lifecycle) ships as experimental — see the warning below. ##### 🚀 New Features - feat(client): request/response policy routing for cluster commands (multi\_shard split, fan-out aggregation, special SCAN/RANDOMKEY/FT.CURSOR) ([#&#8203;2996](https://github.com/redis/node-redis/pull/2996)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat: add `COMMAND DOCS` support ([#&#8203;3362](https://github.com/redis/node-redis/pull/3362)) — [@&#8203;Hashim1999164](https://github.com/Hashim1999164) - feat(client): add `LMOVEM` and `BLMOVEM` commands ([#&#8203;3340](https://github.com/redis/node-redis/pull/3340)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(client): add `SUNIONCARD` and `SDIFFCARD` set-cardinality commands ([#&#8203;3336](https://github.com/redis/node-redis/pull/3336)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(client): add `zRevRankWithScore` ([#&#8203;3279](https://github.com/redis/node-redis/pull/3279)) — [@&#8203;raashish1601](https://github.com/raashish1601) - feat(xread): add `MAXCOUNT` / `MAXSIZE` options ([#&#8203;3335](https://github.com/redis/node-redis/pull/3335)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(search): expose timeout warnings on the `FT.SEARCH` family ([#&#8203;3338](https://github.com/redis/node-redis/pull/3338)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(search): add missing RediSearch stemmer languages ([#&#8203;3350](https://github.com/redis/node-redis/pull/3350)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(search): add `FT.ALIASLIST` ([#&#8203;3351](https://github.com/redis/node-redis/pull/3351)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(search): add `RERANK` parameter for HNSW vector fields ([#&#8203;3356](https://github.com/redis/node-redis/pull/3356)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(search): add `COLLECT` reducer to `FT.AGGREGATE` ([#&#8203;3310](https://github.com/redis/node-redis/pull/3310)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(time-series): add `TS.NRANGE` / `TS.NREVRANGE` multi-key pivot commands ([#&#8203;3337](https://github.com/redis/node-redis/pull/3337)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(time-series): support multiple aggregators per key in `TS.NRANGE` / `TS.NREVRANGE` ([#&#8203;3360](https://github.com/redis/node-redis/pull/3360)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(time-series): add `TS.QUERYLABELS` (`LABELS` and `VALUES` forms) ([#&#8203;3354](https://github.com/redis/node-redis/pull/3354)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(time-series): add `EXCLUDEEMPTY` to `TS.MRANGE` / `TS.MREVRANGE` ([#&#8203;3352](https://github.com/redis/node-redis/pull/3352)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(time-series): add `TS.READ` cursor-read command ([#&#8203;3322](https://github.com/redis/node-redis/pull/3322)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - feat(json): add reviver support to `GET`, `MGET`, and `ARRPOP` ([#&#8203;3205](https://github.com/redis/node-redis/pull/3205)) — [@&#8203;JeanSamGirard](https://github.com/JeanSamGirard) ##### ⚠️ Experimental - feat(client): add HIMPORT command family with managed fieldset lifecycle ([#&#8203;3381](https://github.com/redis/node-redis/pull/3381)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov). The HIMPORT family and its FieldsetRegistry/PreparedFieldsets API are experimental and unstable; the surface may change or be removed in a future release. Do not depend on it in production. ##### 🐛 Bug Fixes - fix(cluster): reject commands before the cluster topology is ready ([#&#8203;3321](https://github.com/redis/node-redis/pull/3321)) — [@&#8203;GiHoon1123](https://github.com/GiHoon1123) - fix(cluster): rebind abort/timeout listeners when a command moves to another queue ([#&#8203;3367](https://github.com/redis/node-redis/pull/3367)) — [@&#8203;GiHoon1123](https://github.com/GiHoon1123) - fix(cluster): make `extractAllCommands` drain the write queue ([#&#8203;3364](https://github.com/redis/node-redis/pull/3364)) — [@&#8203;GiHoon1123](https://github.com/GiHoon1123) - fix(sentinel): reject `connect()` instead of hanging when the resolved master is unreachable ([#&#8203;3331](https://github.com/redis/node-redis/pull/3331)) — [@&#8203;GiHoon1123](https://github.com/GiHoon1123) - fix(client): include the acquire-timeout duration in the pool timeout error message ([#&#8203;3382](https://github.com/redis/node-redis/pull/3382)) — [@&#8203;Piyush0049](https://github.com/Piyush0049) - fix(client): reject the in-flight connect attempt when the socket dies during the initiator ([#&#8203;3374](https://github.com/redis/node-redis/pull/3374)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - fix(client): correct DoublyLinkedList head removal ([#&#8203;3320](https://github.com/redis/node-redis/pull/3320)) — [@&#8203;abhijeet117](https://github.com/abhijeet117) - fix(client): `XADD`/`XTRIM` with `LIMIT 0` must emit the argument ([#&#8203;3342](https://github.com/redis/node-redis/pull/3342)) — [@&#8203;Develop-KIM](https://github.com/Develop-KIM) - fix(client): `XGROUP CREATE`/`SETID` with `ENTRIESREAD 0` must emit the argument ([#&#8203;3333](https://github.com/redis/node-redis/pull/3333)) — [@&#8203;Develop-KIM](https://github.com/Develop-KIM) - fix(client): `XSETID` with `ENTRIESADDED 0` must emit the argument ([#&#8203;3324](https://github.com/redis/node-redis/pull/3324)) — [@&#8203;spokodev](https://github.com/spokodev) - fix(client): `MEMORY USAGE` must emit `SAMPLES` when 0 ([#&#8203;3328](https://github.com/redis/node-redis/pull/3328)) — [@&#8203;Develop-KIM](https://github.com/Develop-KIM) - fix(client): `RESTORE` with `IDLETIME`/`FREQ 0` must emit the argument ([#&#8203;3323](https://github.com/redis/node-redis/pull/3323)) — [@&#8203;spokodev](https://github.com/spokodev) - fix(client): `GETEX PXAT` with a `Date` must encode milliseconds ([#&#8203;3317](https://github.com/redis/node-redis/pull/3317)) — [@&#8203;spokodev](https://github.com/spokodev) - fix(client): `COPY` with `DB 0` must emit the `DB` argument ([#&#8203;3318](https://github.com/redis/node-redis/pull/3318)) — [@&#8203;spokodev](https://github.com/spokodev) - fix(search): preserve zero `FT.CREATE` scores ([#&#8203;3355](https://github.com/redis/node-redis/pull/3355)) — [@&#8203;alencristen](https://github.com/alencristen) - fix: `hScanValuesIterator` now yields values instead of field names ([#&#8203;3344](https://github.com/redis/node-redis/pull/3344)) — [@&#8203;winklemad](https://github.com/winklemad) ##### 🧰 Maintenance - ci(release): skip the throwaway workspace update during the staggered release ([#&#8203;3384](https://github.com/redis/node-redis/pull/3384)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - ci: fix the release-drafter Maintenance category key ([#&#8203;3358](https://github.com/redis/node-redis/pull/3358)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - ci(documentation): cap `GITHUB_TOKEN` to `contents: read` ([#&#8203;3291](https://github.com/redis/node-redis/pull/3291)) — [@&#8203;arpitjain099](https://github.com/arpitjain099) - chore(tests): bump the default docker test image to 8.10 ([#&#8203;3319](https://github.com/redis/node-redis/pull/3319), [#&#8203;3348](https://github.com/redis/node-redis/pull/3348), [#&#8203;3383](https://github.com/redis/node-redis/pull/3383)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - refactor(test-utils): single source for the default docker test image config ([#&#8203;3349](https://github.com/redis/node-redis/pull/3349)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - test: run the client command specs against an external Redis Enterprise database ([#&#8203;3341](https://github.com/redis/node-redis/pull/3341)) — [@&#8203;kiryazovi-redis](https://github.com/kiryazovi-redis) - test(scenario): tolerate at-least-once duplicate delivery during sharded pub/sub handoff ([#&#8203;3345](https://github.com/redis/node-redis/pull/3345)) — [@&#8203;kiryazovi-redis](https://github.com/kiryazovi-redis) - test(search): add non-English language coverage for `FT.SEARCH` ([#&#8203;3339](https://github.com/redis/node-redis/pull/3339)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - test(client): add a message-assertion test for `XCLAIM JUSTID` ([#&#8203;3376](https://github.com/redis/node-redis/pull/3376)) — [@&#8203;Piyush0049](https://github.com/Piyush0049) - test/fix: stabilize the flaky cluster PubSub listener-move test ([#&#8203;3347](https://github.com/redis/node-redis/pull/3347), [#&#8203;3357](https://github.com/redis/node-redis/pull/3357)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - fix(client): stabilize the flaky `LATENCY LATEST` test ([#&#8203;3326](https://github.com/redis/node-redis/pull/3326)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - fix: remove dangling agent symlinks that break checkout ([#&#8203;3334](https://github.com/redis/node-redis/pull/3334)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - docs: add a CommonJS basic example to the README ([#&#8203;3359](https://github.com/redis/node-redis/pull/3359)) — [@&#8203;Hashim1999164](https://github.com/Hashim1999164) - docs(cluster): document that `rootNodes` config is not inherited by node connections ([#&#8203;3327](https://github.com/redis/node-redis/pull/3327)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - docs: update the `end` event description to reference `close()` and `destroy()` ([#&#8203;3332](https://github.com/redis/node-redis/pull/3332)) — [@&#8203;Wnayar](https://github.com/Wnayar) - docs(contributing): document the Docker Desktop host-networking requirement for tests on macOS/Windows ([#&#8203;3330](https://github.com/redis/node-redis/pull/3330)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - chore(docs): update the security email ([#&#8203;3379](https://github.com/redis/node-redis/pull/3379)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - chore: add agent skills and tooling configs ([#&#8203;3316](https://github.com/redis/node-redis/pull/3316)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - chore(skills): emit maintainer comments without blockquote markers ([#&#8203;3373](https://github.com/redis/node-redis/pull/3373)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - docs(skills): improve the implement-command guidance ([#&#8203;3353](https://github.com/redis/node-redis/pull/3353)) — [@&#8203;nkaradzhov](https://github.com/nkaradzhov) - chore: bump the metrics exporter ([#&#8203;3375](https://github.com/redis/node-redis/pull/3375)) — [@&#8203;bobymicroby](https://github.com/bobymicroby) - chore(deps): bump `jws` ([#&#8203;3372](https://github.com/redis/node-redis/pull/3372)), `on-headers` / `express-session` ([#&#8203;3371](https://github.com/redis/node-redis/pull/3371)), `uuid` / `nyc` ([#&#8203;3370](https://github.com/redis/node-redis/pull/3370)), `esbuild` / `tsx` ([#&#8203;3309](https://github.com/redis/node-redis/pull/3309)) — [@&#8203;dependabot](https://github.com/dependabot) ##### New Contributors - [@&#8203;spokodev](https://github.com/spokodev) made their first contribution in [#&#8203;3318](https://github.com/redis/node-redis/pull/3318) - [@&#8203;arpitjain099](https://github.com/arpitjain099) made their first contribution in [#&#8203;3291](https://github.com/redis/node-redis/pull/3291) - [@&#8203;abhijeet117](https://github.com/abhijeet117) made their first contribution in [#&#8203;3320](https://github.com/redis/node-redis/pull/3320) - [@&#8203;GiHoon1123](https://github.com/GiHoon1123) made their first contribution in [#&#8203;3321](https://github.com/redis/node-redis/pull/3321) - [@&#8203;JeanSamGirard](https://github.com/JeanSamGirard) made their first contribution in [#&#8203;3205](https://github.com/redis/node-redis/pull/3205) - [@&#8203;Develop-KIM](https://github.com/Develop-KIM) made their first contribution in [#&#8203;3328](https://github.com/redis/node-redis/pull/3328) - [@&#8203;Wnayar](https://github.com/Wnayar) made their first contribution in [#&#8203;3332](https://github.com/redis/node-redis/pull/3332) - [@&#8203;winklemad](https://github.com/winklemad) made their first contribution in [#&#8203;3344](https://github.com/redis/node-redis/pull/3344) - [@&#8203;Hashim1999164](https://github.com/Hashim1999164) made their first contribution in [#&#8203;3359](https://github.com/redis/node-redis/pull/3359) - [@&#8203;alencristen](https://github.com/alencristen) made their first contribution in [#&#8203;3355](https://github.com/redis/node-redis/pull/3355) - [@&#8203;Piyush0049](https://github.com/Piyush0049) made their first contribution in [#&#8203;3376](https://github.com/redis/node-redis/pull/3376) **Full Changelog**: <https://github.com/redis/node-redis/compare/redis@6.1.0...redis@6.2.0> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTIuNSIsInVwZGF0ZWRJblZlciI6IjQzLjI1Mi41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Update dependency redis to v6.2.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
ci / build-image (pull_request) Successful in 3m44s
ci / test-image (pull_request) Successful in 10s
ci / build-image (push) Successful in 1m25s
ci / test-image (push) Successful in 14s
c8aabdaf20
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jonathan/hostr!158
No description provided.