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
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 HYBRID search (#3119 #3132)
- Add latency histogram (#3099)
🐛 Bug Fixes
- Fix dist/package.json version bumping in release process (#3125)
- Prevent false-ready state when socket errors during handshake (#3128)
- Don't parse number properties in XREADGROUP (#3133)
🧰 Maintenance
- Apply proxy improvements (#3121)
- Mark 8.4 features as experimental (#3134)
- Extract supported Redis versions into SUPPORTED_REDIS_VERSIONS.md (#3131)
- Bump test container image to 8.4.0 (#3139)
Contributors
We'd like to thank all the contributors who worked on this release!
- @andy-stark-redis
- @htemelski-redis
- @nkaradzhov
- @NaughtySora
- @PavelPashov
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.9.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
redis@5.9.0-beta.3
What's Changed
- 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
- @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.9.0-beta.2...redis@5.9.0-beta.3
redis@5.8.3
What's Changed
- fix: add typed/untyped mode support for multi-commands by @PavelPashov in #3084
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.2...redis@5.8.3
redis@5.9.0-beta.2
What's Changed
- 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
New Contributors
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.9.0-beta.1...redis@5.9.0-beta.2
redis@5.9.0-beta.1
What's Changed
- 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
New Contributors
- @Caiuriuller made their first contribution in #3079
- @elena-kolevska made their first contribution in #3082
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.9.0-beta.0...redis@5.9.0-beta.1
redis@5.9.0-beta.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
New Contributors
- @watersRand made their first contribution in #3047
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.2...redis@5.9.0-beta.0
redis@5.8.2
What's Changed
- Clustering sendCommand docs by @nfriedly in #3053
- Stop erasing
ErrorReplystack by @dxg in #3050 - Call out sendCommand cluster difference in readme by @nfriedly in #3054
- fix(ts): xtrim threshold accepts string by @Eomm in #3058
- chore(tests): bump test container version 8.2.1-pre by @nkaradzhov in #3057
- fix(sentinel): properly pass reconnectStrategy by @nkaradzhov in #3063
- fix(search): properly decide if response has docs by @nkaradzhov in #3060
New Contributors
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.1...redis@5.8.2
redis@5.8.1
What's Changed
- chore(tests): bump test container version 8.2 by @nkaradzhov in #3046
- fix(commands): expire, expireAt are not readonly by @nkaradzhov in #3045
- fix: parse database from Redis URL by @PavelPashov in #3052
Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.0...redis@5.8.1