Releases: redis/node-redis
Releases · redis/node-redis
[email protected]
Redis Node.js Client Release Notes
🚀 New Features
- EntraID added support for azure identity by @bobymicroby in #2901
- Added HGETEX, HSETEX, HGETDEL hash field expiration commands by @htemelski in #2907
- feat(auth): add Entra ID identity provider integration for Redis client authentication by @bobymicroby in #2877
- RESP3 support : Node Redis v5 adds support for RESP3, the new Redis serialization protocol introduced in Redis 6.0. RESP3 offers richer data types and improved type handling compared to RESP2
- Sentinel: Redis Sentinel provides high availability for Redis through monitoring, automatic failover, and client-side support.
- Type mapping: Version five allows you configuring the type mapping. Responses can be mapped to objects, arrays, or maps. Likewise, numeric formats can be mapped to either strings or numbers.
🛠️ Improvements
- Infer the cluster pubsub client read only mode from the node type by @htemelski in #2930
- ft.create now accepts a union type for the
TYPE
field which includes the newly supported integer8 and uinteger8 types by @htemelski in #2911 - new "transform arguments" API for better key and metadata extraction by @sjpotter in #2733
- fix sentinel generics by @sjpotter in #2859
- Fix creation of cluster client again by @soccermax in #2870
- Fix cluster-slots discover race condition again by @jjsimps in #2867
- Update tests.yml by @ozennou in #2887
- Typing: Multi-commands are now correctly typed.
- API changes: Several API changes are documented in https://github.com/redis/node-redis/blob/master/docs/v4-to-v5.md
BREAKING CHANGES
- Removed graph module by @bobymicroby in #2897
- 'FT.PROFILE' now returns untyped (as-is) response by @bobymicroby in #2893
- Introduced a client-side default dialect for Redis' search and query capabilities. By default, the client now overrides the server-side dialect with version 2, automatically appending DIALECT 2 to commands like FT.AGGREGATE and FT.SEARCH.
Important: Be aware that the query dialect may impact the results returned. If needed, you can revert to a different dialect version by passing an option to the search commands. You can find further details in the query dialect documentation. by @htemelski in #2895
client.ft.search('index', '*', {DIALECT: 1})
-
Client Configuration:
keepAlive
option has been split intokeepAlive
(boolean) andkeepAliveInitialDelay
(number)- Legacy mode is now accessed via
.legacy()
method instead of{ legacyMode: true }
-
Command Options:
- New API uses "proxy client" to store options instead of passing them directly to commands
- Example:
client.withCommandOptions({ ... }).get('key')
instead ofclient.get(client.commandOptions({ ... }), 'key')
-
Connection Management:
client.QUIT/quit()
is replaced byclient.close()
client.disconnect()
has been renamed toclient.destroy()
-
Scan Iterators:
- Now yield collections of items instead of individual items
- Example:
for await (const keys of client.scanIterator()) { ... }
returns arrays of keys
-
Isolation Pool:
- Superseded by
RedisClientPool
for better separation of concerns
- Superseded by
-
Cluster Multi:
cluster.multi().addCommand()
now requiresisReadonly
parameter for replica execution support
-
Boolean to Number Types:
- Many commands now return numbers (0/1) instead of booleans for better Redis protocol alignment
- Affects: COPY, EXPIRE, EXPIREAT, HEXISTS, HSETNX, MOVE, PEXPIRE, PEXPIREAT, PFADD, RENAMENX, SETNX, etc.
-
API Changes:
- Many commands have updated parameter names and return types
- Enums replaced with constants (e.g.,
RedisFlushModes
→REDIS_FLUSH_MODES
) - Module-specific commands (JSON, Search, Time Series) have parameter restructuring
Full migration details: https://github.com/redis/node-redis/blob/master/docs/v4-to-v5.md
New Contributors
- @ozennou made their first contribution in #2887
- @bobymicroby made their first contribution in #2877
- @htemelski made their first contribution in #2895
- @spavlov6 made their first contribution in #2915
- @dhensby made their first contribution in #2920
- @nkaradzhov made their first contribution in #2929
[email protected]
🚀 New Features
- EntraID added support for azure identity by @bobymicroby in #2901
- Added HGETEX, HSETEX, HGETDEL hash field expiration commands by @htemelski in #2907
🛠️ Improvements
- ft.create now accepts a union type for the
TYPE
field which includes the newly supported integer8 and uinteger8 types by @htemelski in #2911
BREAKING CHANGES
- Removed graph module by @bobymicroby in #2897
- 'FT.PROFILE' now returns untyped (as-is) response by @bobymicroby in #2893
- Introduced a client-side default dialect for Redis' search and query capabilities. By default, the client now overrides the server-side dialect with version 2, automatically appending DIALECT 2to commands like FT.AGGREGATE and FT.SEARCH.
Important: Be aware that the query dialect may impact the results returned. If needed, you can revert to a different dialect version by passing an option to the search commands. You can find further details in the query dialect documentation. by @htemelski in #2895
client.ft.search('index', '*', {DIALECT: 1})
New Contributors
- @htemelski made their first contribution in #2895
Full Changelog: https://github.com/redis/node-redis/compare/[email protected]@5.0.0-next.7
[email protected]
🚀 New Features
- feat(auth): add Entra ID identity provider integration for Redis client authentication by @bobymicroby in #2877
🛠️ Improvements
- new "transform arguments" API for better key and metadata extraction by @sjpotter in #2733
- fix sentinel generics by @sjpotter in #2859
- Fix creation of cluster client again by @soccermax in #2870
- Fix cluster-slots discover race condition again by @jjsimps in #2867
- Update tests.yml by @ozennou in #2887
New Contributors
- @ozennou made their first contribution in #2887
- @bobymicroby made their first contribution in #2877
Full Changelog: https://github.com/redis/node-redis/compare/[email protected]@5.0.0-next.6
[email protected]
🚀 New Features
- RESP3 support: Some command responses in RESP3 aren't stable yet and, therefore, return an "untyped" ReplyUnion.
- Sentinel: You can now connect via Sentinel.
- Type mapping: Version five allows you configuring the type mapping. Responses can be mapped to objects, arrays, or maps. Likewise, numeric formats can be mapped to either strings or numbers.
🛠️ Improvements
- Typing: Multi-commands are now correctly typed.
- API changes: Several API changes are documented in https://github.com/redis/node-redis/blob/master/docs/v4-to-v5.md .
Further details
You can find further details here:
[email protected]
[email protected]
[email protected]
Enhancements
- Upgrade
@redis/client
from1.5.16
to1.6.0
- Upgrade
@redis/json
from1.0.6
to1.0.7
- Upgrade
@redis/search
from1.1.6
to1.2.0
- Upgrade
@redis/time-series
from1.0.5
to1.1.0
[email protected]
Fixes
- fix: make JSON.MGET READONLY (#2807) by @marcoreni in #2808
[email protected]
[email protected]
Enhancements
- Upgrade
@redis/client
from1.5.16
to1.5.17