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