Skip to content

Releases: redis/node-redis

[email protected]

30 Apr 14:58
Compare
Choose a tag to compare

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

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 into keepAlive (boolean) and keepAliveInitialDelay (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 of client.get(client.commandOptions({ ... }), 'key')
  • Connection Management:

    • client.QUIT/quit() is replaced by client.close()
    • client.disconnect() has been renamed to client.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
  • Cluster Multi:

    • cluster.multi().addCommand() now requires isReadonly 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., RedisFlushModesREDIS_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

[email protected]

25 Mar 09:41
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

⚠️ This is an alpha/pre-release version. DO NOT USE IN PRODUCTION!

🚀 New Features

🛠️ 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

Full Changelog: https://github.com/redis/node-redis/compare/[email protected]@5.0.0-next.7

[email protected]

18 Feb 14:05
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

⚠️ This is an alpha/pre-release version. DO NOT USE IN PRODUCTION!

🚀 New Features

  • feat(auth): add Entra ID identity provider integration for Redis client authentication by @bobymicroby in #2877

🛠️ Improvements

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/[email protected]@5.0.0-next.6

[email protected]

15 Oct 16:15
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

⚠️ This is an alpha/pre-release version. DO NOT USE IN PRODUCTION!

🚀 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

Further details

You can find further details here:

[email protected]

29 Jul 14:28
Compare
Choose a tag to compare

Enhancements

  • CAE-193: add IGNORE options to time series commands by @sjpotter in #2752

[email protected]

29 Jul 14:27
Compare
Choose a tag to compare

Enhancements

[email protected]

29 Jul 14:35
Compare
Choose a tag to compare

Enhancements

  • Upgrade @redis/client from 1.5.16 to 1.6.0
  • Upgrade @redis/json from 1.0.6 to 1.0.7
  • Upgrade @redis/search from 1.1.6 to 1.2.0
  • Upgrade @redis/time-series from 1.0.5 to 1.1.0

[email protected]

29 Jul 13:41
Compare
Choose a tag to compare

Fixes

[email protected]

29 Jul 14:29
Compare
Choose a tag to compare

Enhancements

[email protected]

02 Jul 17:42
Compare
Choose a tag to compare

Enhancements

  • Upgrade @redis/client from 1.5.16 to 1.5.17