Skip to content

Upgrading redis 7 to 8

Breaking7.4.1 → 8.1.0Breaking11Deprecated3New38Changed7Fixed30Other29

BreakingUpgrade verdict

10 breaking changes.

  • Changes the default protocol to RESP3 while keeping default responses compatible with the RESP2 shape, with opt-in unified responses.
  • The default connection and retry configuration values have changed.
  • New connections now use the newer RESP3 protocol by default, which returns richer native types like maps, sets, doubles and booleans.
  • Adds Redis Keyspace Notifications support for Redis Cluster.
Top 5 of 13 that need code or config changes
Breaking10
Changes the default protocol to RESP3 while keeping default responses compatible with the RESP2 shape, with opt-in unified responses.
protocollegacy_responses
Updates default connection and retry settings.
Changes the default protocol from RESP2 to RESP3 for all Redis clients and connections.
Adds Redis Keyspace Notifications support for Redis Cluster.
Adds support for subkey notifications.
Handles cluster slot migration in ClusterPubSub with shard subscription reconciliation.
ClusterPubSub
Applies @overload type hints across core, VectorSet and module commands, changing return types for type-checking only.
ResponseTSyncClientProtocolAsyncClientProtocol
Improves type hints for VectorSet and core.py commands to fix static analysis issues with combined sync and async return types.
Types Lock.extend and Lock.reacquire as Literal[True].
Lock.extendLock.reacquire
Avoids zero-timeout async reads in hiredis connection readiness checks and replaces async's can_read_destructive with non-destructive can_read.
can_read_destructivecan_read
Deprecated3
Aligns deprecation of lib_name/lib_version in async cluster.
lib_namelib_version
Adds deprecation notice to setex() method documentation.
setex()
Avoids zero-timeout async reads in hiredis connection readiness checks and replaces async's can_read_destructive with non-destructive can_read.
can_read_destructivecan_read