github redis/redis-py v8.0.0b2
8.0.0b2

pre-release15 hours ago

Changes

Unified command response types across RESP2 and RESP3 protocols

In this release, the command response types across RESP2 and RESP3 protocols are unified, ensuring that the same command returns the same Python type and structure regardless of which protocol version is in use — eliminating the need for protocol-specific branching in application code (#4025). Approximately 84 commands are affected across core Redis, Search, JSON, TimeSeries, and Probabilistic modules. Additionally, the default protocol has been changed from RESP2 to RESP3 for all Redis clients and connections, enabling richer native types (maps, sets, doubles, booleans) and improved performance out of the box (#4031).
These changes are breaking relative to redis-py 7.x and earlier, so users upgrading should carefully review the migration guide. For a complete list of affected commands and updated response formats, see docs/resp_unification.rst and the detailed migration guide at specs/resp2_resp3_migration_guide.md.
Users who need to retain the previous default protocol configuration can explicitly set protocol=2 when creating their client or connection.

🚀 New Features

  • Add random load balancing strategy which allows for use of the primary (#4027)

🔥 Breaking changes

  • RESP2 and RESP3 response unification (#4025)
  • Changing the default RESP protocol configurations for Redis clients and connections to 3 (#4031)

🧰 Maintenance

  • Reorganize unit tests grouping - extracting the tests that define their hardcoded client configuration separately (#4029)

We'd like to thank all the contributors who worked on this release!
@Pack-Yak1 @petyaslavova

Don't miss a new redis-py release

NewReleases is sending notifications on new releases.