releases.shpreview
Redis/node-redis

node-redis

Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMayJun
Less
More
Releases2Avg0/wkVersionsredis@5.12.0 to redis@6.0.0
redis@6.0.0

Changes

This is the first major release of node-redis since 5.x. The headline change is RESP3 by default, alongside broader Redis 8.8 command coverage, pubsub/cluster reliability fixes, and a bumped minimum Node.js version.

Key changes

  • RESP3 is the default protocol — opt back into RESP2 explicitly if you need the old wire format
  • Node.js 20 is the new minimum supported runtime
  • Redis 8.8 coverage — new array commands, INCREX / INCREXBYFLOAT, ZINTER/ZUNION COUNT aggregator, XNACK, CLIENT UNBLOCK
  • Sentinel & cluster pubsub fixes for failover-moved connections and sharded topology recovery
  • Stack modules exposed on pool type and the core client classes are now publicly re-exported

🔥 Breaking Changes

See the v5 → v6 migration guide for migration steps.

  • RESP3 is now the default protocol (#3215)
  • Node.js 20 is now the minimum supported version (#3293)
  • New default values for keepAliveInitialDelay (30s) and commandTimeout (5s) (#3292)

🔒 Security

  • entraid: bump @azure/msal-node to 5.x to drop vulnerable transitive uuid (CVE-2026-41907) (#3269)

🚀 New Features

  • Add CLIENT UNBLOCK command (#3266)
  • Add XNACK command with options (#3238)
  • Add Redis 8.8 array commands (#3285)
  • Add INCREX and INCREXBYFLOAT commands (#3288)
  • Add COUNT aggregator to ZINTER / ZINTERSTORE / ZUNION / ZUNIONSTORE (#3243)
  • Add FPHA option to JSON.SET (#3235)
  • time-series: add multi-aggregation range APIs (#3249)
  • Add duplicate() method to RedisSentinel (#3212)
  • Parse unix:// URLs in parseURL (#3271)
  • Expose RedisClient, RedisCluster, RedisSentinel and pool classes (#3251)
  • Expose stack modules on the pool type (#3267)

🐛 Bug Fixes

  • sentinel: use mapped address when failover moves pubsub connections (#3190)
  • cluster: recover sharded pubsub topology after node reconnects (#3223)
  • client: swallow synchronous EPIPE from writeAfterFIN (#3283)
  • search: allow LOAD * in FT.AGGREGATE (#3241)
  • otel: record client connection errors (#3259)
  • entraid: bump @azure/msal-node to 5.x to drop vulnerable uuid transitive (#3269)
  • Fix wrapper command options handling (#3295)
  • Non-functional typo fixes (#3244)

📚 Documentation

  • Document Node.js 20 minimum version in migration guide (#3293)
  • Numerous typo and grammar fixes across docs and comments (#3230, #3231, #3232, #3239, #3240, #3242, #3245, #3246, #3
  • Inline JSDoc improvements (#3250)
  • Compact receiver hovers via public type aliases (#3248)

🧰 Maintenance

  • Add changed-file lint gate (#3257)
  • CI: lint changed files against PR merge base (#3265)
  • CI: build monorepo before documentation generation (#3233)
  • Add min-release-age cooldown to .npmrc (#3286)
  • Allow empty object types in lint config (#3263)
  • Add hash field subkey notifications test (#3264)
  • Restore generic-transformers spec on current APIs (#3214)
  • Bump default docker test image through 8.8 milestones to 8.8-rc1 (#3234, #3236, #3260, #3284)
  • chore(deps): bump basic-ftp (#3225), tmp and @inquirer/editor (#3294)

👥 New Contributors

We'd like to thank all the contributors who worked on this release! @Rohan5commit, @opensourcezeal, @aarond-sp, @claygeo, @raashish1601, @watersRand, @PavelPashov, @elimelt, @nkaradzhov

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.12.1...redis@6.0.0

✨ What's Changed

🚀 Features
🐛 Fixes
🔭 Observability (OTEL + Diagnostics)

Node Redis now ships with first-class observability via OpenTelemetry metrics and Node.js diagnostics_channel. Initialize OpenTelemetry before creating clients (OpenTelemetry.init({ metrics: { enabled: true } })) and you can plug Redis client telemetry into your existing OTel SDK/exporter pipeline.

This enables visibility into command latency, connection lifecycle, resiliency/errors, Pub/Sub traffic, streaming behavior, and client-side caching activity. On top of metrics, diagnostics channels provide a more abstract, higher-level way to track runtime behavior through low-overhead event streams (commands, batches, connection events, maintenance notifications, pub/sub, cache, and pool wait timing), so APM tools or custom subscribers can observe the system without changing application code.

🧪 Tests & CI
📚 Docs

🙌 New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.11.0...redis@5.12.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, and policy) - 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

🐛 Bug Fixes

📚 Documentation & Testing

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.10.0...redis@5.11.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!

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.9.0...redis@5.10.0

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.3...redis@5.9.0

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.8.1...redis@5.8.2

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.6.1...redis@5.7.0

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.6.0...redis@5.6.1

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.5.6...redis@5.6.0

Note: During our efforts to automate the release process, we inadvertently bumped the version from 5.1.1 to 5.5.5, skipping a few minor versions. No features or changes were actually released in those skipped versions — 5.5.6 is the first release since 5.1.1 with actual changes. We’re now back on track, and the automation is in place moving forward.

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.1.1...redis@5.5.6

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.1.0...redis@5.1.1

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.0.1...redis@5.1.0

What's Changed

New Contributors

Full Changelog: https://github.com/redis/node-redis/compare/redis@5.0.0...redis@5.0.1

Redis Node.js Client Release Notes

🚀 New Features

  • EntraID added support for azure identity by @bobymicroby in https://github.com/redis/node-redis/pull/2901
  • Added HGETEX, HSETEX, HGETDEL hash field expiration commands by @htemelski in https://github.com/redis/node-redis/pull/2907
  • feat(auth): add Entra ID identity provider integration for Redis client authentication by @bobymicroby in https://github.com/redis/node-redis/pull/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

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

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
Last Checked
1h ago
Latest
redis@6.0.0
Tracking since Feb 22, 2022