# What changed in ioredis

> 45 changes in ioredis 5 to 6 from its official release notes, upgrade guides and advisories: 3 breaking, 3 security, 21 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/ioredis/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## ioredis 6

### Breaking changes

- Node.js 20 or newer is now required to use ioredis. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- The default wire protocol is now RESP3; set protocol to 2 to retain the v5 wire protocol. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Adds RESP3 support and uses it by default; set protocol to 2 to retain the v5 wire protocol. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)

### Security

- Redacts values for GETSET in tracing. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Validates MOVED slots to prevent Array.prototype pollution. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Redacts values for PSETEX in tracing. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)

### New APIs and options

- Adds support for the BLMOVEM command. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Exports ClusterStatus. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Adds support for himport managed fieldsets. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Adds support for the LMOVEM command. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Adds MAXCOUNT support for stream reads. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Adds MAXSIZE support for stream reads. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Adds support for Redis 8.10 set cardinality commands. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Exports RedisStatus. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Exports ScanStreamOptions. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)

### Behavior and default changes

- Improves default connection resilience. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)

### Fixes and other changes

- Recreates a stale connection when a circular MOVED occurs in cluster mode. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Keeps reconnecting if the connection closes during client setup. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Serializes large integer arguments in decimal notation. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Preserves a preferred slave priority of zero. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- Clears stale socket timeouts on reconnect. (6.0.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v6.0.0)

## ioredis 5

### New APIs and options

- Adds support for array commands and their typings. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds typed support for the GCRA command. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds support for the increx command. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds support for Redis MSETEX. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds TracingChannel support. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds support for vector set commands. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds support for the xnack command. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds zinter support with count. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds zunion support with count. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Adds support for the HEXPIREAT hash field expiration command. (5.10.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.10.0)
- Adds support for the HEXPIRETIME hash field expiration command. (5.10.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.10.0)
- Timeouts are now supported for blocking commands. (5.9.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.9.0)

### Behavior and default changes

- Client-side blocking timeouts are now opt-in. (5.9.1) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.9.1)
- IP family selection now defaults to 0. (5.8.2) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.8.2)

### Fixes and other changes

- Cluster clients now reconnect to nodes that restart without slot changes. (5.11.1) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.1)
- Protocol-relative Redis URLs are parsed as TCP connections. (5.11.1) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.1)
- Prevents a RangeError caused by string accumulation in pipelines. (5.11.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.11.0)
- Sharded subscribers now start lazily. (5.10.1) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.10.1)
- Autopipelining routes writes to masters when scaleReads is configured. (5.9.3) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.9.3)
- Fixes an issue with moved commands for replicas. (5.9.3) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.9.3)
- Optional properties on RedisOptions now allow explicit undefined in TypeScript. (5.9.3) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.9.3)
- Cluster reconnects sharded subscribers. (5.9.2) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.9.2)
- Commands no longer require unnecessary case sensitivity. (5.9.0) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.9.0)
- CLIENT SETINFO commands now run during the connection handshake. (5.8.2) — [release notes](https://github.com/redis/ioredis/releases/tag/v5.8.2)
