NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3609 most downloaded on PyPI
Fast, async, fully-typed Redis client with support for cluster and sentinel
Last release 18 days ago
31 Aug 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
5 years old
145 releases · first in 2022
One column per quarter.
Ensure prebuilt wheels contain compiled extensions
Release Date: 2023-03-09
Bug Fix
Ensure prebuilt wheels contain compiled extensions
Add retries to pubsub subscribers
Release Date: 2023-03-09
Features
Add retries to pubsub subscribers
Generate prebuilt wheel for aarch64 + Linux
Bug Fix
Use random nodes with cluster pubsub
Trigger a refresh of cluster topology on connection errors
Raise ConnectionError on timeout errors when establishing a connection
Chores
Update pyright
Ensure extension compilation goes through without beartype available
Release Date: 2023-03-08
Bug Fix
Ensure extension compilation goes through without beartype available
Chores
Update dependencies
Update github actions
Use ruff for linting
Update development dependencies
Release Date: 2022-12-24
Chores
Update test certificates
Update development dependencies
Upgrade documentation dependencies
Release Date: 2022-12-11
Compatibility
Upgrade documentation dependencies
Relax version contraint for packaging dependency
Allow using async functions as callbacks for pubsub message handlers
Release Date: 2022-11-21
Feature
Allow using async functions as callbacks for pubsub message handlers
Update implementation of transactional pipeline and the behavior of the transaction method exposed by they cluster client to be consistent with the st
transaction method exposed by they cluster
client to be consistent with the standalone client.func parameter
of the cluster transaction method will no longer automatically
queue commands until a call to multi is issued to be consistent
with the implementation in the standalone client.Ensure pipeline commands are written to the socket in one shot
Release Date: 2022-11-04
Bug Fix
Ensure pipeline commands are written to the socket in one shot
Chore
Reduce package size by removing test folder
Add a post wheel packaging import test
## Bug Fix * Fix wheels for macos
Extend decoding context manager to selecting codec overrides
decoding context manager to selecting codec overridesRelease Date: 2022-10-29
Feature
Extend decoding context manager to selecting codec overrides
Add a decoding context manager to control decoding behavior
decoding context manager to control decoding behaviorRelease Date: 2022-10-28
Feature
Add a decoding context manager to control decoding behavior
Performance
Remove validation code paths at decoration time in optimized mode
## Bug Fix * Fix wheels for macos
Add optimized mode to allow skipping validation code paths
lastid parameter to xclaim methodLuaLock context manager throws an exception when a
lock cannot be acquiredRelease Date: 2022-10-26
Feature
Add optimized mode to allow skipping validation code paths
Add lastid parameter to xclaim method
Bug Fix
Ensure LuaLock context manager throws an exception when a lock cannot be acquired
Compatibility
Add final python 3.11 wheels
Implement early release back to connection pool to allow multiple concurrent commands to use the some connection thus significantly reducing the need
Remove duplicated initialization calls to connection pool & cache
Release Date: 2022-08-31
Bug Fix
Remove duplicated initialization calls to connection pool & cache
Add test coverage for PyPy version 3.7 & 3.9
Release Date: 2022-08-22
Compatibility
Add test coverage for PyPy version 3.7 & 3.9
Bug Fix
Ensure methods expecting iterables for an argument raise a TypeError when a single string or byte sequence is used incorrectly.
Fix leftover default connection pool construction in blocking cluster connection pool
Redis.select is
called directlyEnsure default cluster connection pools are not recreated upon access. #92
Release Date: 2022-08-03
Bug Fix
Ensure default cluster connection pools are not recreated upon access. (Issue 92)
Implicitly initialize cluster connection pool when pubsub subscribe is called
Release Date: 2022-08-03
Bug Fix
Implicitly initialize cluster connection pool when pubsub subscribe is called
Fix handling of sharded pubsub unsubscribe message
Fix unsubscribe all for sharded pubsub
Compatibility
Improve surfacing underlying errors when initializing cluster
Fix context leak when commands issued within ensure_replication and ignore_replies context managers fail
## Compatibility * Bring back python 3.7 support
Release Date: 2022-07-30
Compatibility
Bring back python 3.7 support
Deprecate readonly constructor argument in cluster client in favor of read_from_replicas
nodemanager_follow_cluster to TrueDeprecate readonly constructor argument in
cluster client in favor of read_from_replicas
Remove invalid property setter for noreply mode
Fix incorrect calculation of per node connection pool size in BlockingClusterConnectionPool when readonly=False
BlockingClusterConnectionPool when readonly=Falsemax_connection is at least equal to the number of nodes in the cluster and raise a warning when it is notRelease Date: 2022-07-23
Bug Fix
Fix incorrect calculation of per node connection pool size when readonly=False
Ensure max_connection is atleast equal to the number of nodes in the cluster and raise a warning when it is not
Allow passing connection_pool_cls to Redis and RedisCluster constructors to pick the connection pool implementation during client construction
connection_pool_cls to Redis and RedisCluster constructors to pick
the connection pool implementation during client constructioncoredis.exceptions.ConnectionError instead of coredis.exceptions.RedisClusterError
when a connection can't be acquired due to max_connections being hit.Release Date: 2022-07-22
Features
Introduced coredis.pool.BlockingClusterConnectionPool
Allow passing ~coredis.Redis.connection_pool_cls and ~coredis.RedisCluster.connection_pool_cls to pick the connection pool implementation during client construction
Breaking Changes
~coredis.RedisCluster now raises a ~coredis.exceptions.ConnectionError when a connection can't be acquired due to max_connections being hit.
Release Date: 2022-07-22
Features
Introduced coredis.pool.BlockingClusterConnectionPool
Allow passing connection_pool_cls and connection_pool_cls to pick the connection pool implementation during client construction
Breaking Changes
RedisCluster now raises a ConnectionError when a connection can’t be acquired due to max_connections being hit.
Add support and test coverage for PyPy 3.8.
coredis.RedisCluster.ensure_replication can be used
with ~coredis.RedisCluster.ensure_replication.replicas <
total number of replicasRelease Date: 2022-07-21
Compatibility
Add support and test coverage for PyPy 3.8.
Bug Fix
Ensure coredis.RedisCluster.ensure_replication can be used with ~coredis.RedisCluster.ensure_replication.replicas < total number of replicas
Fix routing of coredis.Redis.script_kill and coredis.Redis.function_kill to only route to primaries
coredis.Redis.script_kill and coredis.Redis.function_kill to only route to primariescoredis.typing.Parameterscoredis.Redis.set to be consistent with command documentationEnsure lua scripts for lock recipe are included in package
Release Date: 2022-07-18
Bug Fix
Ensure lua scripts for lock recipe are included in package
Reintroduce distributed lock implementation under coredis.recipes.locks
coredis.recipes.locksRelease Date: 2022-07-18
Features
Reintroduce distributed lock implementation under coredis.recipes.locks
Bug Fix
Allow initializing a LUA library without loading the code when it already exists if replace=False
Performance
Reduce unnecessary calls to parser by using an async Event to signal that data is available for parsing
Relax version checking to only warn if a server reports a non standard server version (for example with Redis-like databases)
Added section about reliability in handbook
Release Date: 2022-07-16
Documentation
Added section about reliability in handbook
Improved cross referencing
Added support for using noreply when sending commands
Release Date: 2022-07-15
Features
Added support for using noreply when sending commands (see handbook/noreply:no reply mode)
Added support for ensuring replication to n replicas using ~coredis.Redis.ensure_replication.
Moved ~coredis.KeyDB client out of experimental namespace
Backward incompatible changes
Use RESP3 as default protocol version (see handbook/response:redis response)
~coredis.RedisCluster.non_atomic_cross_slot is default behavior for cluster clients
Moved exceptions out of root namespace to coredis.exceptions
Removed Lock implementations
Dropped support for hiredis (see history:parsers)
Removed StrictRedis & StrictRedisCluster aliases
Release Date: 2022-07-15
Features
Added support for using noreply when sending commands (see No Reply Mode )
Added support for ensuring replication to n replicas using ensure_replication() .
Moved KeyDB client out of experimental namespace
Backward incompatible changes
Use RESP3 as default protocol version (see handbook/response:redis response )
non_atomic_cross_slot is default behavior for cluster clients
Moved exceptions out of root namespace to coredis.exceptions
Removed Lock implementations
Dropped support for hiredis (see Parsers )
Removed StrictRedis & StrictRedisCluster aliases
Nothing published for this version
Nothing published for this version
Nothing published for this version
Remove python 3.11 binary wheel builds
Release Date: 2022-07-13
Chore
Remove python 3.11 binary wheel builds
Fix issue with sharded pubsub not handling multiple channel subscriptions
Release Date: 2022-07-09
Bug Fix
Fix issue with sharded pubsub not handling multiple channel subscriptions
Correct implementation of restore command when absttl argument is True.
Release Date: 2022-07-07
Bug Fix
Correct implementation of restore command when absttl argument is True.
Ignore case when comparing error strings to map exceptions. Addresses #70
Release Date: 2022-06-30
Bug Fix
Ignore case when comparing error strings to map to exceptions
Fix incorrect handling of non_atomic_cross_slot commands when not all nodes are required for a command
Release Date: 2022-06-29
Bug Fix
Fix incorrect handling of ~coredis.RedisCluster.non_atomic_cross_slot commands when not all nodes are required for a command
Remove deprecated sentinel methods
noreply option to Redis & RedisCluster constructors
to allow using the client without waiting for response from the
serverclient_setname, client_reply and auth
commandsprotocol_version in cluster pipeline code pathsRelease Date: 2022-06-25
Features
Added coredis.Redis.noreply and coredis.RedisCluster.noreply option to Redis & RedisCluster constructors to allow using the client without waiting for response from the server
Build wheels for all architectures supported by cibuildwheel
Deprecations / Removals
Remove deprecated sentinel methods
Add warnings for ~coredis.Redis.client_setname, ~coredis.Redis.client_reply and ~coredis.Redis.auth commands
Bug Fixes
Fix missing protocol_version in cluster pipeline code paths
## Chores * Documentation tweaks
Expose ssl parameters in RedisCluster constructor
Release Date: 2022-06-18
Features
Expose ssl parameters in coredis.RedisCluster constructor
Expose ~coredis.Redis.ssl_check_hostname parameter in Redis/RedisCluster constructors
Separate opt-in cache behaviors into protocols leaving ~coredis.cache.AbstractCache as the minimal implementation required
Expose cache stats through the ~coredis.cache.TrackingCache.stats property, returning a ~coredis.cache.CacheStats dataclass.
Allow ~coredis.cache.TrackingCache.dynamic_confidence to increase cache confidence up to 100% instead of capping it at the original ~coredis.cache.TrackingCache.confidence value provided
Chores
Improve documentation for caching
Improve test coverage for ssl connections
Add test coverage for cluster ssl clients
Release Date: 2022-06-18
Features
Expose ssl parameters in coredis.RedisCluster constructor
Expose ssl_check_hostname parameter in Redis/RedisCluster constructors
Separate opt-in cache behaviors into protocols leaving AbstractCache as the minimal implementation required
Expose cache stats through the stats property, returning a CacheStats dataclass.
Allow dynamic_confidence to increase cache confidence up to 100% instead of capping it at the original confidence value provided
Chores
Improve documentation for caching
Improve test coverage for ssl connections
Add test coverage for cluster ssl clients
Expose cache parameter to Sentinel managed clients
Release Date: 2022-06-15
Features
Expose ~coredis.sentinel.Sentinel.cache parameter to Sentinel managed clients
Bug Fix
Handle error parsing command not found exception
Add option to define confidence in cached entries
Release Date: 2022-06-14
Features
Add option to define confidence in cached entries
Extend coverage of cachable commands
Release Date: 2022-06-13
Features
Extend coverage of cachable commands
Expose option to share TrackingCache between client
Add support for client side caching
Release Date: 2022-06-12
Features
Add support for client side caching (handbook/caching:caching)
Add support for sharded pubsub for redis 7.0.1
Release Date: 2022-06-10
Features
Add support for sharded pubsub for redis 7.0.1 (handbook/pubsub:cluster pub/sub)
Expose ~coredis.Redis.from_url.verify_version parameter to coredis.Redis.from_url factory function
Experiments
Extend CI coverage for keydb & dragonfly
Release Date: 2022-06-10
Features
Add support for sharded pubsub for redis 7.0.1 ( Cluster Pub/Sub )
Expose verify_version parameter to coredis.Redis.from_url() factory function
Experiments
Extend CI coverage for keydb & dragonfly
Fix routing of ACL SAVE in cluster mode
Release Date: 2022-06-07
Bug Fixes
Fix support for HELLO SETNAME
Fix routing of ACL SAVE in cluster mode
Chores
Improved test coverage for server commands
New nodenames parameter added to sentinel_info_cache
nodenames parameter added to sentinel_info_cacheRelease Date: 2022-06-07
Features
New nodenames parameter added to sentinel_info_cache
Chores
Added redis 7.0 to sentinel test coverage matrix
Add CI coverage for dragonflydb
Release Date: 2022-06-05
Bug Fix
Fix type annotation for hmget
Experiments
Add CI coverage for dragonflydb
Add support for python 3.11 (b3) builds
Inline buffering of responses in python parser
Release Date: 2022-05-26
Performance
Inline buffering of responses in python parser
Refactor python parser to remove recursion
Release Date: 2022-05-25
Features
Refactor python parser to remove recursion
Reduce number of async calls during response parsing
Extract command packer and use mypyc to compile it to native code
Improved RESP error <-> exception mapping
Release Date: 2022-05-21
Chores
Documentation reorg
Improved RESP error <-> exception mapping
Bug fix
Ignore duplicate consumer group error due to groupconsumer initialization race condition
## Features * Stream consumer clients ## Experiments * Updated KeyDB command coverage * KeyDBCluster client
Release Date: 2022-05-19
Features
Stream consumer clients (handbook/streams:simple consumer and handbook/streams:group consumer)
Experiments
Updated ~coredis.experimental.KeyDB command coverage
~coredis.experimental.KeyDBCluster client
Release Date: 2022-05-19
Features
Stream consumer clients ( Simple Consumer and Group Consumer )
Experiments
Updated KeyDB command coverage
KeyDBCluster client
Change version related warnings to use DeprecationWarning
script_load is routed to all nodes in cluster modeevalsha_ro, eval_ro, fcall_ro are included in readonly commandsRelease Date: 2022-05-15
Features
Add option to enable non atomic splitting of commands in cluster mode when the commands only deal with keys (delete, exists, touch, unlink) (~coredis.RedisCluster.non_atomic_crossslot)
Add support for sharded pub sub in cluster mode (~coredis.RedisCluster.sharded_pubsub)
Add support for readonly execution of LUA scripts and redis functions
Bug Fix
Ensure ~coredis.RedisCluster.script_load is routed to all nodes in cluster mode
Ensure ~coredis.RedisCluster.evalsha_ro, ~coredis.RedisCluster.eval_ro, ~coredis.RedisCluster.fcall_ro are included in readonly commands for cluster readonly mode.
Change version related warnings to use DeprecationWarning
Chores
General improvements in reliability and correctness of unit tests
Release Date: 2022-05-15
Features
Add option to enable non atomic splitting of commands in cluster mode when the commands only deal with keys (delete, exists, touch, unlink) ( non_atomic_crossslot )
Add support for sharded pub sub in cluster mode ( sharded_pubsub() )
Add support for readonly execution of LUA scripts and redis functions
Bug Fix
Ensure script_load() is routed to all nodes in cluster mode
Ensure evalsha_ro() , eval_ro() , fcall_ro() are included in readonly commands for cluster readonly mode.
Change version related warnings to use DeprecationWarning
Chores
General improvements in reliability and correctness of unit tests
Fix type annotation for PubSubMessage.data to include int for server responses to subscribe/unsubscribe/psubscribe/punsubscribe
Release Date: 2022-05-12
Bug Fix
Fix type annotation for coredis.response.types.PubSubMessage.data to include int for server responses to subscribe/unsubscribe/psubscribe/punsubscribe
verify_version on both Redis & RedisCluster constructors will default to True resulting in warnings being emitted for using deprecated methods and pre…
Library.wraps and Script.wraps decorators for creating strict signature wrappers for lua scripts and
functions.__call__ method to Script so it can be called directly without having to go through executeIterable[KeyT] or Iterable[ValueT] which would allow strings or bytes to be passed. These are now changed to Parameters[KeyT] or Parameter[ValueT] respectively which only allow a restricted set of collections and reject strings and bytes.verify_version on both Redis & RedisCluster constructors will default to True resulting in warnings being emitted for using
deprecated methods and preemptive exceptions being raised when calling methods against server versions that do not support them.Release Date: 2022-05-10
Features
Added coredis.commands.Library.wraps and coredis.commands.Script.wraps decorators for creating strict signature wrappers for lua scripts and functions.
Add ~coredis.commands.Script.__call__ method to coredis.commands.Script so it can be called directly without having to go through coredis.commands.Script.execute
Improve type safety with regards to command methods accepting multiple keys or values. These were previously annotated as accepting either Iterable[KeyT] or Iterable[ValueT] which would allow strings or bytes to be passed. These are now changed to Parameters[KeyT] or Parameter[ValueT] respectively which only allow a restricted set of collections and reject strings and bytes.
Breaking Changes
Removed custom client side implementations for cross slot cluster methods. These methods will now use the regular cluster implementation and raise and error if the keys don't map to the same shard.
coredis.Redis.verify_version on both ~coredis.Redis & ~coredis.RedisCluster constructors will default to True resulting in warnings being emitted for using deprecated methods and preemptive exceptions being raised when calling methods against server versions that do not support them.
Dropped support for redis server versions less than 6.0
A large chunk of utility / private code has been moved into private namespaces
Chores
Refactor response transformation to use inlined callbacks to improve type safety.
Bug Fixes
Ensure protocol_version, decoding arguments are consistent across different construction methods.
Synchronize parameters for replacing library code between coredis.commands.Library constructor and coredis.Redis.register_library
Update CI to use official 7.0 release for redis
Release Date: 2022-05-04
Chores
Update CI to use official 7.0 release for redis
Update CI to use 7.0.0-RC4 image for redis-stack
Bug Fix
Fix key spec extraction for commands using kw search
Ensure protocol_version is captured for constructions with from_url
Release Date: 2022-04-30
Bug Fixes
Ensure protocol_version is captured for constructions with from_url
Fix command name for module_loadex method
Your coding agent can read these notes before it upgrades. Set up the MCP server →