Upgrading redis 7 to 8
Breaking7.4.1 → 8.1.0Breaking11Deprecated3New38Changed7Fixed30Other29
BreakingUpgrade verdict
10 breaking changes.
In plain terms
- 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.
Must act Top 5 of 13 that need code or config changes
What you must change
Breaking10
Changes the default protocol to RESP3 while keeping default responses compatible with the RESP2 shape, with opt-in unified responses.
protocollegacy_responsesUpdates 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.
ClusterPubSubApplies @overload type hints across core, VectorSet and module commands, changing return types for type-checking only.
ResponseTSyncClientProtocolAsyncClientProtocolImproves 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.reacquireAvoids zero-timeout async reads in hiredis connection readiness checks and replaces async's can_read_destructive with non-destructive can_read.
can_read_destructivecan_readDeprecations to plan for
Deprecated3
Aligns deprecation of lib_name/lib_version in async cluster.
lib_namelib_versionAdds 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