github redis/node-redis redis@6.0.0

5 hours ago

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

🧰 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

Don't miss a new node-redis release

NewReleases is sending notifications on new releases.