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.
We'd like to thank all the contributors who worked on this release! @Pack-Yak1 @petyaslavova
Fetched May 1, 2026