NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3325 most downloaded on PyPI
Fast, async, fully-typed Redis client with support for cluster and sentinel
Last release 1 months 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.
Add support for Redis 8.10 commands and options, including:
Add support for Redis 8.10 commands and options, including:
LMOVEM / BLMOVEMSUNIONCARD / SDIFFCARDBACKUPcoredis.modules.TimeSeries.nrange,coredis.modules.TimeSeries.nrevrange,coredis.modules.TimeSeries.read, andcoredis.modules.TimeSeries.querylabelscoredis.modules.Search.aliaslistXREAD MAXCOUNT / MAXSIZEEXCLUDEEMPTYcoredis.patterns.himport.HashImport forHIMPORT bulk hash loads viacoredis.Redis.himport andcoredis.RedisCluster.himportAdd CLAIM to coredis.Redis.xreadgroup and keep
idle and delivered fields on claimed entries
datetime.datetime values withdatetime.datetime.timestamp in expiry helpersAdd support for Redis 8.8 commands and options, including:
Add support for Redis 8.8 commands and options, including:
AR*) with coredis.commands.PredicateARGREPINCREXXNACKZINTER / ZUNION AGGREGATE COUNTFPHA), Search hybrid options, andAdd coredis.Redis.supports to check whether the connected
server exposes a given command
UnknownCommandError when CLIENT SETINFO is blocked@propertyExtend read from replica functionality to unshareded cluster pubsub
--no-docker option to pytest to skip startingRelease Date: 2026-05-25
Feature
Extend read from replica functionality to unshareded cluster pubsub
Bug Fix
Release lock when exception occcurs in lock context
Development
Add --no-docker option to pytest to skip starting docker containers when running tests.
Revert backward incompatible changes in compilation units.
Release Date: 2026-04-14
Bug Fix
Revert backward incompatible changes in compilation units.
Fix memory leak due to incorrect property caching of command request objects introduced in 6.3.0
6.3.0opentelemetry-api dependencyRelease Date: 2026-04-14
Bug Fix
Fix memory leak due to incorrect property caching of command request objects introduced in 6.4.0
Remove incorrectly added opentelemetry-api dependency
Telemetry * Ensure connection pool name is always added to operation
duration metric
Add library version to opentelemetry attributes
Fix regression introduced in 6.5.0 that results in batch request cancellations being suppressed.
Release Date: 2026-04-11
Bug Fix
Fix regression introduced in 6.5.0 that results in batch request cancellations being suppressed.
Pipeline performance optimization for large pipeline batches by collapsing request resolution into a single await.
Release Date: 2026-04-10
Feature
Add OpenTelemetry Support
Performance
Pipeline performance optimization for large pipeline batches by collapsing request resolution into a single await.
Add missing pool_timeout argument in client from_url factory methods
pool_timeout argument in client from_url factoryfailure_hook in retry policypackaging dependencyRelease Date: 2026-04-01
Bug Fix
Add missing pool_timeout argument in client from_url factory methods
Remove extra final call to failure_hook in retry policy
Compatibility
Relax version constraint on packaging dependency
Allow explicitly specifying (through coredis.commands.CommandRequest.route ) the cluster node per command for methods that can't automatically be rout
coredis.commands.CommandRequest.route)SCAN in cluster when used with explicit coredis.commands.CommandRequest.routeCLIENT SETINFO and allow it to be usableAdd cross slot implementation for:
Add cross slot implementation for:
MSETMGETJSON.MGETJSON.MSETGEOSHAPE index type for searchClean up connection pool task group when __aenter__
fails during initialization
Failure to do so would leave the connection pool unusable as the counter
would be stuck at 1 and would not trigger a reinitialization.
Fix failure to recover from errors during cluster discovery
Handle pool depletion (and therefore a subsequent stall on getting a
connection from the pool) in case of repeated connection establishment
errors.
Ensure connections are reusable before returning them from the pool
as a connection used for pubsub which still has messages being
received could be used for a new pubsub consumer resulting in
stale messages being consumed by the new consumer.
Fix initialization races and add early failure for unsafe concurrent sharing
Add initialization lock preventing a race
where a herd of concurrent tasks could try to use the pool before
it was fully initialized
Since AnyIO strictly requires that a cancel scope (in this case the task group
of the connection pool) be exited by the exact same task that created it, there
was a very easily reproducable scenario where an uninitialized pool
shared by concurrent tasks would be initialized (counter=1) by a short lived task
which would exit before the other tasks sharing the pool do. This
would result in the last task (the task that decrements counter to 0)
to try and cancel the task group and fail.
The pool now fails early with a better error.
Fix stalled initialization when a client is initialized with a cache is pointing
to an unreachable redis server.
Improve cluster exception heirarchy
RedisClusterException to coredis.exceptions.RedisClusterErrorcoredis.exceptions.RedisClusterErrorFix inconsistent wrapping of non single key cluster methods
in coroutines instead of returning an awaitable.
These commands would therefore not have been
usable in a consistent manner as the basic redis client.
Improve resiliency of sentinel primary
Using the SENTINEL_MASTERS is not the recommended
approach in the redis sentinel client implementation guide
(https://redis.io/docs/latest/develop/reference/sentinel-clients/#step-2-ask-for-the-master-address)
and it has been recommended to use GET_MASTER_ADDR-BY-NAME.
Testing under repeated failovers it appears that the SENTINEL MASTERS
command would often return a stale primary that had been demoted to a
replica which would result in ReadOnlyError in previous versions (thus
leaving the client broken since the ReadOnlyError would not result in a
disconnection). The GET_MASTER_ADDR_BY_NAME command appears to have a
more consistent response - however it is still possible that a stale
primary is returned. In this case a coredis.exceptions.StalePrimaryError
will now be raised on a new connection (failover should result in all active connections
being closed by the server, as noted in: https://redis.io/docs/latest/develop/reference/sentinel-clients/#sentinel-failover-disconnection)
Automatically recovering from stale primary errors can easily be
done by using a to a retry policy for the coredis.exceptions.StalePrimaryError error
Remove runtime validation of iterable parameters for redis commands
as there is already sufficient static type validation along with
opt in runtime validation with beartype.
Add explicit verification of unsubscription requests in pubsub to ensure
that the connection's push message buffer is fully consumed before releasing
the connection back to the pool.
Improve generic structure of connection pools and connection types
to provide a clearer separation of which parameters are acceptable
for initializing which connection / connection pool type.
ConnectionPools are now generic around the connection type they
pool (invariant)
Standardize server location types across the code base to use
coredis.connection.Location
Clearly separate sentinel connection pool, connection and client
and move them to appropriate sub packages (coredis.connection &
coredis.pool)
Replace NodeManager with a ClusterLayout that owns both the live
topology view and a background monitor task to keep the local cluster
layout cache refreshed. DiscoveryService becomes a pure query object.
Extract command splitting from cluster layout
Added RoutingStrategy to extract the logic of routing/splitting commands
that affect either no keys or keys on more than one slot out of
ClusterLayout & RedisCluster. Routing logic is now collapsed into a
single "route_strategy" in the command decorators that specifies:
Updated all redis command methods to have consistent docstrings for parameters
& return types
Enable type checking for all response callback related private submodules
Fix incorrect initialization of connection capacity limiter resulting in module level shared capacity limiter.
DELEX (coredis.Redis.delex)DIGEST (coredis.Redis.digest)MSETEX (coredis.Redis.msetex)coredis.Redis.set to support conditional
setting of values and expiration based on value or digest
equalitycoredis.Redis.xaddXCFGET (coredis.Redis.xcfgset)Release Date: 2026-02-12
Bug Fix
Fix incorrect initialization of connection capacity limiter resulting in module level shared capacity limiter.
Fix broken recovery from moved errors in cluster retry mechanism
Remove bloat in source distribution and only package relevant source files
Compatibility
Add support for DELEX ( delex() )
Add support for DIGEST ( digest() )
Add support for MSETEX ( msetex() )
Update set() to support conditional setting of values and expiration based on value or digest equality
Add support for idempotent stream producers in xadd()
Add support for XCFGET ( xcfgset() )
Usability
Remove ambiguous “Any” kwargs in clients, connection pools and connection constructors and tighten the acceptable parameters.
Broaden acceptable types for commands that take mappings as arguments to allow for covariance in the mapping key
This release is a major architectural rewrite focused on structured concurrency, predictable resource lifetimes, and safer defaults. See the Migration
This release is a major architectural rewrite focused on structured concurrency, predictable resource lifetimes, and safer defaults. See the Migration guide for upgrade instructions.
Migrate entire library to anyio, adding structured concurrency and trio support
Command API
coredis.commands.CommandRequest.transform method to accept inline callbacks
to transform command responsescoredis.commands.CommandRequest.retry chainable method to the response from all commands
to allow using retry policies individually with a request instead of having to apply it on all requests
issued by a clientPipeline
coredis.commands.Script instancesScripting
coredis.commands.Script and coredis.commands.Function can now be called with
optional callbacks to transform the raw response from redis before returning it. This is supported
by their associated coredis.commands.Script.wraps decorators as well.coredis.commands.Script and coredis.commands.Function instances can now
also be used with coredis.commands.CommandRequest.transform or coredis.commands.CommandRequest.retry.coredis.commands.function.wraps.verify_existence flag to library
coredis.commands.function.wraps to optionally skip local validation and optimistically call itRetry Policies
ExceptionGroup contains a matching exceptioncoredis.retry.ExponentialBackoffRetryPolicy now supports coredis.retry.ExponentialBackoffRetryPolicy.jitterMiscellaneous
coredis.Redis.lock added as a convenient accessor
for the Lua-based lock: coredis.patterns.lock.Lock (Previously found in coredis.recipes.LuaLock)coredis.Redis.xconsumer factory method to create a single or group stream consumercoredis.patterns.pubsub.PubSub instances.
Using a coredis.patterns.pubsub.PubSub.subscription_timeout, the acknowledgement
of subscription to a topic or pattern can be guaranteed before proceeding with listening to messagesAll classes (clients, connection pools, PubSub, pipelines, stream consumers, Sentinel clients) must be used with their async context managers for initialization/cleanup. This ensures a predictable and unified resource lifecycle management model.
Users should replace coredis.cache.TrackingCache with coredis.patterns.cache.LRUCache when
providing a cache instance to the clients. Cache size can no longer be bound by byte size and only
coredis.patterns.cache.LRUCache.max_keys is supported
Connection pools are now always blocking. Non-blocking commands are multiplexed over shared connections and released
back to the pool immediately after being queued and thus most workloads naturally converge to using a single active connection.
Pool exhaustion mainly occurs when the workload relies on blocking operations (e.g. pubsub, pipelines, blocking list commands),
making a unified blocking model simpler and more predictable. The explicit blocking variants coredis.BlockingConnectionPool
and coredis.BlockingClusterConnectionPool have been removed.
Connection pool acquisition timeouts now raise TimeoutError instead of
coredis.exceptions.ConnectionError.
Pipeline
coredis.patterns.pipeline.Pipeline.execute method and instead
execute automatically when their context exitscoredis.Redis.pipeline is no longer an async methodwatches parameter has been removed from the pipeline constructorWATCH,
UNWATCH, MULTI in pipelines. This is replaced by the coredis.patterns.pipeline.Pipeline.watch context manager.Stream consumers can no longer be awaited and must be used as async context managers to ensure initialization
coredis.Redis.pubsub, coredis.RedisCluster.pubsub &
coredis.RedisCluster.sharded_pubsub now only accept keyword arguments
When defining type stubs for FFI for Lua scripts or library functions, keys can only be distinguished
from arguments by annotating them with coredis.typing.KeyT
Module reorganization
coredis.patternscoredis.commands.pubsub → coredis.patterns.pubsubcoredis.pipeline → coredis.patterns.pipelinecoredis.stream → coredis.patterns.streamscoredis.cache → coredis.patterns.cachecoredis.lock → coredis.patterns.lockRESP version 2coredis.commands.Monitor wrappercoredis.modules.RedisGraph module supportcoredis.exceptions.UnknownCommandError exception being raisedcoredis.modules.response.aggregation.AggregationType.COUNTALL and
coredis.modules.response.aggregation.AggregationType.COUNTNAN aggregation types to
coredis.modules.TimeSeriescoredis.modules.Search.create.indexall argument to coredis.modules.Search.createcoredis.Redis.vsim.nothread argument to coredis.Redis.vsimVRANGE vector set command (coredis.Redis.vrange)FT.HYBRID search command (coredis.modules.Search.hybrid)Release Date: 2026-02-08
This release is a major architectural rewrite focused on structured concurrency, predictable resource lifetimes, and safer defaults. See the Migration guide for upgrade instructions.
Features
Migrate entire library to anyio, adding structured concurrency and trio support
Command API
Allow chainable transform() method to accept inline callbacks to transform command responses
Added retry() chainable method to the response from all commands to allow using retry policies individually with a request instead of having to apply it on all requests issued by a client
Pipeline
Pipelines execute automatically when their context exits - results are accessible in a type-safe way
Cluster pipelines now support Script instances
Scripting
Script and Function can now be called with optional callbacks to transform the raw response from redis before returning it. This is supported by their associated wraps decorators as well.
Responses from Script and Function instances can now also be used with transform() or retry() .
Add a verify_existence flag to library coredis.commands.function.wraps() to optionally skip local validation and optimistically call it
Retry Policies
Retry policies now allow infinite retries & retry deadlines.
Retry policies now support retrying when the raised ExceptionGroup contains a matching exception
ExponentialBackoffRetryPolicy now supports jitter
Miscellaneous
lock() added as a convenient accessor for the Lua-based lock: Lock (Previously found in coredis.recipes.LuaLock )
Add xconsumer() factory method to create a single or group stream consumer
Improve guarantees of calling subscription methods on PubSub instances. Using a subscription_timeout , the acknowledgement of subscription to a topic or pattern can be guaranteed before proceeding with listening to messages
Breaking Changes
All classes (clients, connection pools, PubSub, pipelines, stream consumers, Sentinel clients) must be used with their async context managers for initialization/cleanup. This ensures a predictable and unified resource lifecycle management model.
Users should replace TrackingCache with LRUCache when providing a cache instance to the clients. Cache size can no longer be bound by byte size and only max_keys is supported
Connection pools are now always blocking. Non-blocking commands are multiplexed over shared connections and released back to the pool immediately after being queued and thus most workloads naturally converge to using a single active connection . Pool exhaustion mainly occurs when the workload relies on blocking operations (e.g. pubsub, pipelines, blocking list commands), making a unified blocking model simpler and more predictable. The explicit blocking variants BlockingConnectionPool and BlockingClusterConnectionPool have been removed.
Connection pool acquisition timeouts now raise TimeoutError instead of ConnectionError .
Pipeline
Pipeline instances can no longer be awaited and must be used as async context managers
Pipelines no longer expose an explicit execute() method and instead execute automatically when their context exits
pipeline() is no longer an async method
The watches parameter has been removed from the pipeline constructor
Drop support for explicit management of WATCH , UNWATCH , MULTI in pipelines. This is replaced by the watch() context manager.
Stream consumers can no longer be awaited and must be used as async context managers to ensure initialization
pubsub() , pubsub() & sharded_pubsub() now only accept keyword arguments
When defining type stubs for FFI for Lua scripts or library functions, keys can only be distinguished from arguments by annotating them with KeyT
Module reorganization
Move Pub/Sub, Pipeline, Stream, Cache and Lock submodules to coredis.patterns
coredis.commands.pubsub → coredis.patterns.pubsub
coredis.pipeline → coredis.patterns.pipeline
coredis.stream → coredis.patterns.streams
coredis.cache → coredis.patterns.cache
coredis.lock → coredis.patterns.lock
Removals
Drop support for RESP version 2
Remove Monitor wrapper
Remove RedisGraph module support
Compatibility
The clients no longer check if a module is loaded at initialization. Therefore a module command issued against a server that doesn’t have the module will not fail early and instead result in an UnknownCommandError exception being raised
Add COUNTALL and COUNTNAN aggregation types to TimeSeries
Add indexall argument to create()
Add nothread argument to vsim()
Add support for VRANGE vector set command ( vrange() )
Add support for FT.HYBRID search command ( hybrid() )
Move Pub/Sub, Pipeline, Stream, Cache and Lock submodules to coredis.patterns.
coredis.patterns.
coredis.commands.pubsub -> coredis.patterns.pubsubcoredis.pipeline -> coredis.patterns.pipelinecoredis.stream -> coredis.patterns.streamscoredis.cache -> coredis.patterns.cachecoredis.lock -> coredis.patterns.lockcountall and countnan aggregation types to
coredis.modules.TimeSeriesindexall argument to coredis.modules.Search.createnothread argument to coredis.Redis.vsimAdd coredis.Redis.xconsumer factory method to create a single or group stream consumer
coredis.Redis.xconsumer factory method to
create a single or group stream consumerverify_existence flag to library
coredis.commands.function.wraps to optionally
skip local validation and optimistically call it.subscription_timeout the acknowledgement
of subscription to a topic or pattern can be guaranteed before
proceeding with listening to messages.Script instancestransform method to accept inline
callbacks to transform the response from the redis serverretry chainable method to the response from
all commands to allow using retry policies individually
with a requests instead of having to apply it on all
requests issued by a client.jittercoredis.Redis.pubsub, coredis.RedisCluster.pubsub &
coredis.RedisCluster.sharded_pubsub now only accept keyword
arguments.coredis.exceptions.UnknownCommandError exception by raised.VRANGE vector set command (coredis.Redis.vrange)FT.HYBRID search command (coredis.modules.Search.hybrid)6.0.0rc1 with sending commands
to the socket. Performance over concurrent workloads is now at par with 5.x or betterMigrate entire library to anyio, adding structured concurrency and trio support.
anyio, adding structured concurrency and trio support.Library.wraps renamed to coredis.commands.function.wraps and now supports callbacks.coredis.commands.Script and coredis.commands.Function can now be called with
optional callbacks to transform the raw response from redis before returning it. This is supported
by their associated wraps decorators as well.coredis.Redis.lock & coredis.RedisCluster.lock added as a convenient accessors
for the Lua-based lock: coredis.lock.Lock (Previously found in coredis.recipes.LuaLock).Almost all classes (clients, connection pools, PubSub, pipelines) now require being used with their async context managers for initialization/cleanup.
Users should replace TrackingCache with coredis.cache.LRUCache when providing a cache
instance to the clients. Cache size can no longer be bound by byte size and only max_keys is supported.
All connection pools are now blocking.
Pipelines
execute() method and instead auto-execute when leaving
their context manager.__len__ and __bool__ methods of coredis.pipeline.Pipelinewatch, unwatch, multi in pipelines. This
is replaced by the coredis.pipeline.Pipeline.watch async context manager.When defining type stubs for FFI for Lua scripts or library functions, keys can only be distinguished
from arguments by annotating them with coredis.typing.KeyT.
RESP2.Monitor wrapper.RedisGraph module support.Ensure username and password provided as keyword arguments to from_url are used if there are none found in the url itself.
from_url are used if there are none found in the url
itself.Release Date: 2026-02-05
Bug Fix
Ensure username and password provided as keyword arguments to from_url are used if there are none found in the url itself.
Fix a potential race condition with the Redis client where a non blocking command could be queued on a connection that is already acquired for a block
Release Date: 2026-01-19
Bug Fix
Fix a potential race condition with the Redis client where a non blocking command could be queued on a connection that is already acquired for a blocking command.
Deprecate support for legacy RESP2 protocol
Release Date: 2026-01-12
Compatibility
Deprecate support for legacy RESP2 protocol
Fix recursion error when retrying pipeline commands on cluster moved errors
Release Date: 2025-12-17
Bug Fix
Fix recursion error when retrying pipeline commands on cluster moved errors
Mark redis graph module support as deprecated
Release Date: 2025-10-10
Compatibility
Mark redis graph module support as deprecated
Fix compatibility with beartype >= 0.22
Add support for python 3.14
Add support for new stream commands (xackdel & xdelex) in redis 8.2
xackdel & xdelex)
in redis 8.2vismember command for vector setsEnsure ssl_context passed in kwargs of from_url factory method is respected.
ssl_context passed in kwargs of from_url factory
method is respected.Release Date: 2025-09-10
Bug Fix
Ensure ssl_context passed in kwargs of from_url factory method is respected.
Fix regression caused by 5.0.0 which completely broke the use of Sentinel with decode_responses=False.
5.0.0 which completely broke the use of Sentinel
with decode_responses=False.Release Date: 2025-07-18
Bug Fix
Fix regression caused by 5.0.0 which completely broke the use of Sentinel with decode_responses=False.
Remove deprecated pubsub listen and threaded worker APIs
Awaitable
(CommandRequest) which can be awaited as before.listen and threaded worker APIsFix duplicate command error in using transform with pipeline
transform with pipelineRelease Date: 2025-07-10
Bug Fix
Fix duplicate command error in using transform with pipeline
Remove deprecated pubsub listen and threaded worker APIs
listen and threaded worker APIsAdd support for using library functions with pipelines
Release Date: 2025-07-05
Bug Fix
Add support for using library functions with pipelines
Ensure pubsub consumer task cleanly exists when the pubsub instance has been shutdown with close or aclose
close or acloseRelease Date: 2025-06-20
Bug Fix
Ensure pubsub consumer task cleanly exists when the pubsub instance has been shutdown with close or aclose
Fix busy loop in pubsub consumer when it isn't subscribed to any channel or pattern.
Release Date: 2025-06-19
Bug Fix
Fix busy loop in pubsub consumer when it isn't subscribed to any channel or pattern.
Disable incompatible scan method for redis cluster
scan method for redis clusterscan_iter with redis cluster with uninitialized clientRelease Date: 2025-05-06
Bug Fix
Disable incompatible scan method for redis cluster
Fix use of scan_iter with redis cluster with uninitialized client
Deprecate run_in_thread APIs for PubSub & Monitor
Improve API for pubsub instances to:
from_url class methodrun_in_thread APIs for PubSub & Monitorlisten methods for PubSub instancesEnsure ssl context is correctly setup with the check_hostname & cert_reqs even when a keyfile / cert are not provided. This allows clients to connect
check_hostname & cert_reqs even when a keyfile / cert
are not provided. This allows clients to connect to a redis
instance that has tls-auth-client=no by simply setting
ssl_cert_reqs=noneRelease Date: 2025-03-05
Bug Fix
Ensure ssl context is correctly setup with the check_hostname & cert_reqs even when a keyfile / cert are not provided. This allows clients to connect to a redis instance that has tls-auth-client=no by simply setting ssl_cert_reqs=none
Improve handling of ssl parameters (especially from query string) when dealing with self signed certificates.
novalues argument to hscanRelease Date: 2025-03-02
Features
Add novalues argument to hscan
Bug Fix
Improve handling of ssl parameters (especially from query string) when dealing with self signed certificates.
Added ability to use credential providers to supply authentication details when establishing connections to the server
hexpirehexpireathpexpirehpexpireathpersisthexpiretimehpexpiretimehttlmaxage parameter in client_kill method.Fix artifact download in github release workflow
Release Date: 2024-12-09
Chore
Fix artifact download in github release workflow
Release Date: 2024-12-09 * Chore * Fix github release workflow
Release Date: 2024-12-09
Chore
Fix github release workflow
Add explicit exception types for locking recipe
CLIENT SET-INFO for lib-name & lib-ver
when redis version < 7.2Release Date: 2024-04-19
Features
Add explicit exception types for locking recipe
Bug fix
Fix incorrect use of CLIENT SET-INFO for lib-name & lib-ver when redis version < 7.2
Fix various incorrect type annotations in return types
Compatibility
Update documentation dependencies
Update test dependencies (related to pytest)
Fix intermittent errors due to mismatched responses when multiple couroutines access a new connection pool.
json.resp as deprecatedFix intermittent errors due to mismatched responses when multiple couroutines access a new connection pool.
Release Date: 2023-08-11
Bug fix
Fix intermittent errors due to mismatched responses when multiple couroutines access a new connection pool.
Handle edge case of clearing a closed socket buffer during object destruction.
Release Date: 2023-08-10
Bug fix
Handle edge case of clearing a closed socket buffer during object destruction.
Chores
Re-enable CI for dragonfly
Improve cleanup on socket disconnect by clearing internal response buffer
lpop methodRelease Date: 2023-08-09
Bug fix
Improve cleanup on socket disconnect by clearing internal response buffer
Chores
Add typing overload for lpop method
Remove python 3.7 from CI due to EOL.
Temporarily disable pre-release python 3.12 from CI due to dependency resolution issues.
Update development dependencies
Improve parsing of TS.INFO response for rules section
TS.INFO response for
rules sectionMapping instead of
DictEnsure hint from moved errors are used on next attempt
json.mset commandjson.mgetRelease Date: 2023-05-10
Feature
Add json.mset command
Bug Fix
Remove caching for json.mget
Ensure hint from moved errors are used on next attempt
Fix exception message for unsupported commands
json.merge commandRelease Date: 2023-05-08
Feature
Add json.merge command
Bug fix
Fix exception message for unsupported commands
Downgrade sphinx back to 6.x for theme compatibility
Release Date: 2023-05-03
Hack
Downgrade sphinx back to 6.x for theme compatibility
Fix incorrect explicit command execution on cluster pipeline retries
Release Date: 2023-05-03
Bug Fixes
Fix incorrect explicit command execution on cluster pipeline retries
Fix inconsistent reset api signatures for pipeline across standalone & cluster clients
Ensure pipeline requests respect explicit timeout
Fix incomplete xinfo_streams response for groups/consumers details
Expand coverage of modules tests to include RESP2
Release Date: 2023-04-29
Chores
Expand coverage of modules tests to include RESP2
Allow failures for "next" versions of redis in CI
Add pure python wheel to release process
Release Date: 2023-04-27
Feature
Add pure python wheel to release process
Chores
Improve redis module documentation
Update CI to use python 3.11 as default
Fix README formatting
## Chore * Clean up changelog entries
Release Date: 2023-04-22
Chore
Clean up changelog entries
Ensure task cancellation results in proper cleanup of a connection that might be blocked
Release Date: 2023-04-22
Bug Fix
Ensure task cancellation results in proper cleanup of a connection that might be blocked
Add support for RedisBloom module
Add support for RedisBloom module
Add support for ReJSON module
Add support for RedisSearch module
Add support for RedisTimeSeries module
Add support for RedisGraph module
Check argument versions for compatibility and raise appropriate errors if an argument is used on an older server version which doesn't support it.
Expose ~coredis.Redis.retry_policy to client constructors
Expose ~coredis.Redis.noevict in client constructors
Add initial support for redis 7.2
~coredis.Redis.notouch in client constructors~coredis.Redis.client_no_touch~coredis.Redis.client_setinfo~coredis.Redis.waitaofwithscore argument for ~coredis.Redis.zrevrank~coredis.Redis.ensure_persistenceAllow adding streams to stream consumers after initialization
Improve cluster routing for commands that act on multiple slots but are handled by the same node.
Allow overriding the default stream_timeout when using a pipeline
~coredis.Redis.ensure_replication~coredis.Redis.command~coredis.ConnectionPool.from_url &
~coredis.ClusterConnectionPool.from_url to support
all constructor argumentsRelease Date: 2023-04-21
Features
Add support for RedisBloom module
Add support for ReJSON module
Add support for RedisSearch module
Add support for RedisTimeSeries module
Add support for RedisGraph module
Check argument versions for compatibility and raise appropriate errors if an argument is used on an older server version which doesn’t support it.
Expose retry_policy to client constructors
Expose noevict in client constructors
Add initial support for redis 7.2
Expose notouch in client constructors
Add support for client_no_touch()
Add support for client_setinfo()
Add support for waitaof()
Add new withscore argument for zrank() & zrevrank()
Add new context manager ensure_persistence()
Allow adding streams to stream consumers after initialization
Improve cluster routing for commands that act on multiple slots but are handled by the same node.
Allow overriding the default stream_timeout when using a pipeline
Bug Fix
Ensure multiple properties returned from info command are collapsed into an array
Fix leaked connections when using ensure_replication()
Improve handling of cancellation errors
Improve handling of timeout errors
Ensure cluster commands routed to random nodes use primaries by default
Handle pause/resume callbacks from Transport and pause sending subsequent commands until the transport buffer is resumed.
Handle RESP3 response for command()
Update from_url() & from_url() to support all constructor arguments
Add support for RedisGraph module
~coredis.Redis.command~coredis.ConnectionPool.from_url &
~coredis.ClusterConnectionPool.from_url to support
all constructor argumentsRelease Date: 2023-04-19
Features
Add support for RedisGraph module
Allow overriding the default stream_timeout when using a pipeline
Check argument versions for compatibility and raise appropriate errors if an argument is used on an older server version which doesn’t support it.
Bug Fix
Handle pause/resume callbacks from Transport and pause sending subsequent commands until the transport buffer is resumed.
Handle RESP3 response for command()
Update from_url() & from_url() to support all constructor arguments
Chores
Add redis-stack @ edge to compatibility matrix in CI
Add support for RedisSearch module
Release Date: 2023-04-10
Features
Add support for RedisSearch module
Allow adding streams to stream consumers after initialization
Chores
Update mypy
Add support for RedisBloom module
Release Date: 2023-04-04
Features
Add support for RedisBloom module
Add support for ReJSON module
Add support for RedisTimeSeries module
Improve cluster routing for commands that act on multiple slots but are handled by the same node.
Bug Fix
Ensure multiple properties returned from info command are collapsed into an array
Handle external warnings in tests
Release Date: 2023-03-27
Chores
Handle external warnings in tests
Improve docstrings & annotations for ensure_persistence
Add reruns for test failures in CI
Add python 3.12 to CI
Expose retry_policy to client constructors
retry_policy to client constructorsnoevict in client constructorsnotouch in client constructorsclient_no_touchwaitaofwithscore argument for zrank & zrevrankensure_persistenceensure_replicationRelease Date: 2023-03-26
Features
Expose ~coredis.Redis.retry_policy to client constructors
Expose ~coredis.Redis.noevict in client constructors
Add initial support for redis 7.2
Expose ~coredis.Redis.notouch in client constructors
Add support for ~coredis.Redis.client_no_touch
Add support for ~coredis.Redis.client_setinfo
Add support for ~coredis.Redis.waitaof
Add new withscore argument for ~coredis.Redis.zrank & ~coredis.Redis.zrevrank
Add new context manager ~coredis.Redis.ensure_persistence
Bug Fix
Fix leaked connections when using ~coredis.Redis.ensure_replication
Improve handling of cancellation errors
Improve handling of timeout errors
Ensure cluster commands routed to random nodes use primaries by default
Ensure task cancellation results in proper cleanup of a connection that might be blocked
Release Date: 2023-04-22
Bug Fix
Ensure task cancellation results in proper cleanup of a connection that might be blocked
Ensure protocol_version is parsed as an int from url
protocol_version is parsed as an int from urlRelease Date: 2023-04-04
Bug Fix
Ensure protocol_version is parsed as an int from url
## Chores * Update cibuildwheels action * Update versioneer * Migrate setup.cfg to pyproject * Parallelize CI wheel build * Reintroduce ruff for linti
Release Date: 2023-03-11
Chores
Update cibuildwheels action
Update versioneer
Migrate setup.cfg to pyproject
Parallelize CI wheel build
Reintroduce ruff for linting
## Chores * Add changelog link to pypi
Release Date: 2023-03-09
Chores
Add changelog link to pypi
Your coding agent can read these notes before it upgrades. Set up the MCP server →