# What changed in redis

> 36 changes in redis 7 to 8 from its official release notes, upgrade guides and advisories: 2 breaking, 22 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/pypi/redis/

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

## redis 8

### Breaking changes

- Decodes ACL LOG string values on the default RESP3 legacy callback. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Makes the listen method block. (8.0.1) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.0.1)

### New APIs and options

- Adds support for moving multiple elements between lists with the blocking command. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds the COLLECT reducer to search aggregations. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- ConnectionPool now supports use as a context manager. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds support for the FT.ALIASLIST command. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds experimental client-side HIMPORT fieldset support for standalone and cluster clients; the public API may change in a future minor version. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds support for moving multiple elements between lists. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Async standalone and cluster clients now support server-pushed maintenance notifications, allowing applications to adapt connection handling during maintenance. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds replica sentinel aliases. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds support for the set difference cardinality command. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds aclose() to release Sentinel client pools. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds close() to release Sentinel client pools. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds support for the set union cardinality command. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds the exclude_empty option, represented by EXCLUDEEMPTY, to TS.MRANGE. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds the exclude_empty option, represented by EXCLUDEEMPTY, to TS.MREVRANGE. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds support for the TS.NRANGE Time Series command. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds support for the TS.NREVRANGE Time Series command. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds TS.QUERYLABELS support to the Time Series command surface. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds support for the TS.READ Time Series command. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds MAXCOUNT option support to XREAD. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds MAXSIZE option support to XREAD. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds MAXCOUNT option support to XREADGROUP. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Adds MAXSIZE option support to XREADGROUP. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)

### Fixes and other changes

- Concurrent hiredis disconnects now raise ConnectionError instead of AttributeError. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Fixes FIELDNAME aliases dropping the first character of un-prefixed fields. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Fixes the latitude/longitude swap in the search querystring geo() helper. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Restores the NEVER_DECODE option for FT.SEARCH with protocol=3. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Detects closed pooled connections without consuming pending push data when using RESP3 with hiredis. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Fixes Sentinel pool capacity loss after failover. (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Fixes a double-decoding issue in unquote(). (8.1.0) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.1.0)
- Fixes parsing RESP3 FT.SEARCH responses when keys are bytes-typed. (8.0.1) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.0.1)
- Fixes async MultiDBClient when its underlying client is RedisCluster. (8.0.1) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.0.1)
- Adds the missing URL query argument parser for ssl_min_version. (8.0.1) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.0.1)
- Fixes maintenance notification handling over Unix sockets. (8.0.1) — [release notes](https://github.com/redis/redis-py/releases/tag/v8.0.1)

## redis 7

### Fixes and other changes

- Explicit None values for client metadata configuration are preserved. (7.4.1) — [release notes](https://github.com/redis/redis-py/releases/tag/v7.4.1)
