Releases ยท redis/node-redis
redis@5.11.0
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 notifications. The client now automatically handles slot migrations by:
- Relaxing timeouts during migration (SMIGRATING) to prevent false failures
- Automatic slot handoff when completed (SMIGRATED)
- Enabling seamless operations during Redis Enterprise maintenance windows
Redis 8.6 Support
This release adds support for Redis 8.6 features:
- XADD idempotency options (
IDMPAUTO,IDMP, andpolicy) - Prevent duplicate entries by tracking producer and message IDs - XCFGSET command - Configure per-stream idempotency parameters (
IDMP_DURATION,IDMP_MAXSIZE) - XINFO STREAM enhancements - New idempotency tracking fields (
idmp-duration,idmp-maxsize,pids-tracked,iids-tracked,iids-added,iids-duplicates) - HOTKEYS command family (
START,STOP,GET,RESET) - Track and identify hot keys by CPU time and network bytes
๐ New Features
- feat(cluster): smart client handoffs OSS (hitless upgrades) by @nkaradzhov in #3142
- feat(client): add VRANGE command for vector sets by @nkaradzhov in #3158
- feat(client): add HOTKEYS command for hotkey tracking by @nkaradzhov in #3164
- feat(client): add XCFGSET command for stream idempotency configuration by @nkaradzhov in #3163
- feat(client): add XADD idempotency options (IDMPAUTO, IDMP) and policy by @nkaradzhov in #3161
- feat(client): add idempotency fields to XINFO STREAM response by @nkaradzhov in #3162
- feat(time-series): add NaN support and new aggregation types by @PavelPashov in #3167
- feat(client): add local digest helper for CAS/CAD operations by @PavelPashov in #3154
- feat(search): support indexing same field multiple times with different configurations by @nkaradzhov in #3157
- feat(sentinel): implement nodeAddressMap for sentinel by @elimelt in #3145
- feat(test-utils): add testAllAuto method for automatic cluster test generation by @bobymicroby in #3148
- Add socket.servname property to createClient configuration by @itrich in #3165
๐ Bug Fixes
- fix(client): Support IPv6 literals in URL by @TimWolla in #3176
- fix(client): return Promise consistently in cluster functions by @orgads in #3159
- fix(search): improve FT.HYBRID command implementation by @PavelPashov in #3171
- fix(pool): cannot read private member by @Eomm in #3151
- fix: unwrap constructors to primitives in type mapping by @watersRand in #3174
๐ Documentation & Testing
- docs: correct CAS/CAD parameter name and update example by @PavelPashov in #3156
- docs(token-manager): Correct documentation for jitterPercentage by @dubek in #3153
- tests: fix flaky timeout assertion in maintenance notification test by @kiryazovi-redis in #3143
- tests: add TLS connection tests by @PavelPashov in #3166
- tests: add mocha multi-reporters and junit reporter support by @bobymicroby in #3138
- refactor(test-utils): use separate redis-tag and redis-version CLI arguments by @nkaradzhov in #3169
- Hotkeys Adjustments by @nkaradzhov in #3173
New Contributors
- @kiryazovi-redis made their first contribution in #3143
- @elimelt made their first contribution in #3145
- @dubek made their first contribution in #3153
- @itrich made their first contribution in #3165
- @TimWolla made their first contribution in #3176
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.10.0...redis@5.11.0
redis@5.10.0
redis@5.9.0
What's Changed
- fix(ts): use all commands in cluster type by @nkaradzhov in #3065
- Main by @watersRand in #3047
- docs: fix scanIterator example in readme by @nkaradzhov in #3072
- Hitless upgrades by @nkaradzhov in #3021
- fix(cluster): prevent infinite loop by @nkaradzhov in #3078
- docs: update RedisJSON documentation link by @Caiuriuller in #3079
- refactor(test): improve test scenario reliability and maintainability by @PavelPashov in #3077
- Improve stale issue management workflow by @elena-kolevska in #3082
- Maint fixes by @nkaradzhov in #3086
- feat: add default modules to createClientPool by @killagu in #3088
- DOC-5743 BITOP examples by @andy-stark-redis in #3087
- feat: add typed/untyped mode support for multi-commands by @PavelPashov in #3084
- Fix: resolve doubly linked list push issue by @ntvviktor in #3085
- Update default Redis version to 8.4-M01-pre in tests by @bobymicroby in #3092
- Adjust scenario tests according to latest maint naming changes by @nkaradzhov in #3090
- test(maint): touch up wrong assertions by @nkaradzhov in #3096
- fix(pool): make createClientPool use provided options by @nkaradzhov in #3095
- Emit invalidate events from client by @sastcsgh in #3076
- Fix client kill enums by @watersRand in #3074
- cluster/node events (#1855) by @NaughtySora in #3083
- fix(ssubscribe): properly resubscribe in case of shard failover by @nkaradzhov in #3098
- fix: multi-byte character corruption when converting Buffers to strings by @brb3 in #3100
- fix(cmd): PUBSUB_NUMSUB return count as number by @nkaradzhov in #3103
- Extend proxy by @nkaradzhov in #3105
New Contributors
- @watersRand made their first contribution in #3047
- @Caiuriuller made their first contribution in #3079
- @elena-kolevska made their first contribution in #3082
- @killagu made their first contribution in #3088
- @ntvviktor made their first contribution in #3085
- @sastcsgh made their first contribution in #3076
- @NaughtySora made their first contribution in #3083
- @brb3 made their first contribution in #3100
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.3...redis@5.9.0