Changelog¶
v6.5.1¶
Release Date: 2026-04-11
Bug Fix
Fix regression introduced in 6.5.0 that results in batch request cancellations being suppressed.
v6.5.0¶
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.
v6.4.0¶
Release Date: 2026-04-01
Bug Fix
Add missing
pool_timeoutargument in clientfrom_urlfactory methodsRemove extra final call to
failure_hookin retry policy
Compatibility
Relax version constraint on
packagingdependency
v6.3.0¶
Release Date: 2026-03-23
Feature
Allow explicitly specifying (through
route()) the cluster node per command for methods that can’t automatically be routed to one or many nodes.Enable
SCANin cluster when used with explicitroute()to perform the scan on a single node in the clusterUse replicas in cluster pipelines when all commands are readonly
Bug Fix
Fix performance regression in cluster pubsub due to a new capacity limiter being used for each connection instead of being shared by the pool.
Catch authorization errors on connection establishment when setting
CLIENT SETINFOand allow it to be usable
v6.2.0¶
Release Date: 2026-03-07
Features
Compatibility
Add
GEOSHAPEindex type for search
Bug Fixes
Clean up connection pool task group when
__aenter__fails during initializationFailure 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.
Usability
Improve cluster exception heirarchy
Rename
RedisClusterExceptiontocoredis.exceptions.RedisClusterErrorfor consistency. (Alias is maintained for backward compatibility)Ensure all cluster exceptions do derive from the base
coredis.exceptions.RedisClusterError
Fix 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.
Reliability & Performance
Improve resiliency of sentinel primary
Using the
SENTINEL_MASTERSis 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 useGET_MASTER_ADDR-BY-NAME.Testing under repeated failovers it appears that the
SENTINEL MASTERScommand 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). TheGET_MASTER_ADDR_BY_NAMEcommand appears to have a more consistent response - however it is still possible that a stale primary is returned. In this case aStalePrimaryErrorwill 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
StalePrimaryErrorerrorRemove 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.
Typing
Fix typing errors caused by invariant list type
Add fallback type overloads for client constructors
Chores
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.LocationClearly separate sentinel connection pool, connection and client and move them to appropriate sub packages (coredis.connection & coredis.pool)
Replace
NodeManagerwith aClusterLayoutthat owns both the live topology view and a background monitor task to keep the local cluster layout cache refreshed.DiscoveryServicebecomes a pure query object.Extract command splitting from cluster layout
Added
RoutingStrategyto 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:where to distribute
how to split
how to merge
Updated all redis command methods to have consistent docstrings for parameters & return types
Enable type checking for all response callback related private submodules
v6.1.0¶
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
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
v6.0.0¶
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 :pypi:`anyio`, adding structured concurrency and :mod:`trio` support
Command API
Allow chainable
transform()method to accept inline callbacks to transform command responsesAdded
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
Scriptinstances
Scripting
ScriptandFunctioncan now be called with optional callbacks to transform the raw response from redis before returning it. This is supported by their associatedwrapsdecorators as well.Responses from
ScriptandFunctioninstances can now also be used withtransform()orretry().Add a
verify_existenceflag to librarycoredis.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
ExceptionGroupcontains a matching exceptionExponentialBackoffRetryPolicynow supportsjitter
Miscellaneous
lock()added as a convenient accessor for the Lua-based lock:Lock(Previously found incoredis.recipes.LuaLock)Add
xconsumer()factory method to create a single or group stream consumerImprove guarantees of calling subscription methods on
PubSubinstances. Using asubscription_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
TrackingCachewithLRUCachewhen providing a cache instance to the clients. Cache size can no longer be bound by byte size and onlymax_keysis supportedConnection 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
BlockingConnectionPoolandBlockingClusterConnectionPoolhave been removed.Connection pool acquisition timeouts now raise
TimeoutErrorinstead ofConnectionError.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 exitspipeline()is no longer an async methodThe
watchesparameter has been removed from the pipeline constructorDrop support for explicit management of
WATCH,UNWATCH,MULTIin pipelines. This is replaced by thewatch()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 argumentsWhen defining type stubs for FFI for Lua scripts or library functions, keys can only be distinguished from arguments by annotating them with
KeyTModule reorganization
Move Pub/Sub, Pipeline, Stream, Cache and Lock submodules to
coredis.patternscoredis.commands.pubsub→coredis.patterns.pubsubcoredis.pipeline→coredis.patterns.pipelinecoredis.stream→coredis.patterns.streamscoredis.cache→coredis.patterns.cachecoredis.lock→coredis.patterns.lock
Removals
Drop support for RESP version
2Remove
MonitorwrapperRemove
RedisGraphmodule 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
UnknownCommandErrorexception being raisedAdd
COUNTALLandCOUNTNANaggregation types toTimeSeries
v6.0.0rc3¶
Release Date: 2026-02-06
Renamed submodules
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
Compatibility
Add
countallandcountnanaggregation types toTimeSeriesAdd
indexallargument tocreate()Add
nothreadargument tovsim()
Performance
Improve pub/sub performance that had regressed in 6.0.0rc1 & 6.0.0rc2 when compared with 5.x. The root of the slowdown was the change in reading from the connection explicitly versus being fed the data sequentially by the eventloop in the previous asyncio implementation. Performance is now back to (or better) than 5.x
v6.0.0rc2¶
Release Date: 2026-01-30
Feature
Add
xconsumer()factory method to create a single or group stream consumerAdd a
verify_existenceflag to librarycoredis.commands.function.wraps()to optionally skip local validation and optimistically call it.Improve guarantees of calling subscription methods on PubStub instances. Using a
subscription_timeoutthe acknowledgement of subscription to a topic or pattern can be guaranteed before proceeding with listening to messages.Cluster pipelines now support
ScriptinstancesAllow chaininable
transformmethod to accept inline callbacks to transform the response from the redis serverAdded
retrychainable 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.Retry policies now allow infinite retries & retry deadlines.
ExponentionBackoffRetryPolicy now supports jitter
Breaking change
Stream consumers can no longer be awaited and must be used as context managers to ensure initialization
coredis.Redis.pubsub(),coredis.RedisCluster.pubsub()&coredis.RedisCluster.sharded_pubsub()now only accept keyword arguments.
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
UnknownCommandErrorexception by raised.Add support for
VRANGEvector set command (vrange())Add support for
FT.HYBRIDsearch command (hybrid())
Performance
Fixed performance regression introduced in
6.0.0rc1with sending commands to the socket. Performance over concurrent workloads is now at par with 5.x or better
v6.0.0rc1¶
Release Date: 2026-01-18
Features
Migrate entire library to anyio, adding structured concurrency and trio support.
Pipelines auto-execute when exiting their context manager; results are accessible in a type-safe way.
Library.wrapsrenamed tocoredis.commands.function.wraps()and now supports callbacks.ScriptandFunctioncan now be called with optional callbacks to transform the raw response from redis before returning it. This is supported by their associatedwrapsdecorators as well.coredis.Redis.lock()&coredis.RedisCluster.lock()added as a convenient accessors for the Lua-based lock:coredis.lock.Lock(Previously found incoredis.recipes.LuaLock).
Breaking Changes
Almost all classes (clients, connection pools, PubSub, pipelines) now require being used with their async context managers for initialization/cleanup.
Users should replace
TrackingCachewithcoredis.cache.LRUCachewhen providing a cache instance to the clients. Cache size can no longer be bound by byte size and onlymax_keysis supported.All connection pools are now blocking.
Pipelines
Pipelines no longer expose an explicit
execute()method and instead auto-execute when leaving their context manager.Removed
__len__and__bool__methods ofcoredis.pipeline.PipelineDrop support for explicit management of
watch,unwatch,multiin pipelines. This is replaced by thecoredis.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.
Removals
Drop support for
RESP2.Remove
Monitorwrapper.Remove
RedisGraphmodule support.
v5.7.0¶
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.
v5.6.0¶
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.
v5.5.0¶
Release Date: 2026-01-12
Compatibility
Deprecate support for legacy RESP2 protocol
v5.4.0¶
Release Date: 2025-12-17
Bug Fix
Fix recursion error when retrying pipeline commands on cluster moved errors
v5.3.0¶
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
v5.2.0¶
Release Date: 2025-10-01
Feature
Add support for new stream commands (
xackdel&xdelex) in redis 8.2Add
vismembercommand for vector sets
Bug Fix
Allow client to gracefully proceed when modules can’t be enumerated due to ACL restrictions
Development
Switch entirely to pyproject.toml for project metadata
Use hatch for build
Use uv for development environment
v5.1.0¶
Release Date: 2025-09-10
Bug Fix
Ensure
ssl_contextpassed in kwargs offrom_urlfactory method is respected.
v5.0.1¶
Release Date: 2025-07-18
Bug Fix
Fix regression caused by
5.0.0which completely broke the use of Sentinel withdecode_responses=False.
v5.0.0¶
Release Date: 2025-07-16
Features
Add support for using custom types with redis commands by registering serializers and deserializers
Allow stacking pipeline commands synchronously
Expose statically typed responses for pipeline commands
Compatibility
Redis command methods are no longer coroutines and instead synchronous methods that return subclasses of
Awaitable(CommandRequest) which can be awaited as before.Add support for redis 8.0 vector set commands
Add support for redis 8.0 hash expiry commands
Remove deprecated pubsub
listenand threaded worker APIsRemove support for KeyDB
Performance
Streamline client side cache shrinking
v5.0.0rc2¶
Release Date: 2025-07-10
Bug Fix
Fix duplicate command error in using
transformwith pipeline
v5.0.0rc1¶
Release Date: 2025-07-07
Features
Add support for using custom types with redis commands by registering serializers and deserializers
Allow stacking pipeline commands syncronously
Expose statically types responses for pipeline commands
Compatibility
Add support for redis 8.0 vector set commands
Add support for redis 8.0 hash expiry commands
Remove deprecated pubsub
listenand threaded worker APIsRemove support for KeyDB
Performance
Streamline client side cache shrinking
v4.24.0¶
Release Date: 2025-07-05
Bug Fix
Add support for using library functions with pipelines
v4.23.1¶
Release Date: 2025-06-20
Bug Fix
Ensure pubsub consumer task cleanly exists when the pubsub instance has been shutdown with close or aclose
v4.23.0¶
Release Date: 2025-06-19
Bug Fix
Fix busy loop in pubsub consumer when it isn’t subscribed to any channel or pattern.
v4.22.0¶
Release Date: 2025-05-06
Bug Fix
Disable incompatible
scanmethod for redis clusterFix use of
scan_iterwith redis cluster with uninitialized client
v4.21.0¶
Release Date: 2025-05-02
Features
Improve API for pubsub instances to:
Be used as Async context manager for automatic cleanup
Be iterated on with async for to consume messages
Be awaited to ensure initialization
subscribe on instantiation
Bug Fix
Correct type narrowing when constructing client with
from_urlclass method
Compatibility
Drop support for python 3.9
Remove tests for RESP2
Deprecations
Deprecate
run_in_threadAPIs for PubSub & MonitorDeprecate
listenmethods for PubSub instances
v4.20.0¶
Release Date: 2025-03-05
Bug Fix
Ensure ssl context is correctly setup with the
check_hostname&cert_reqseven when a keyfile / cert are not provided. This allows clients to connect to a redis instance that hastls-auth-client=noby simply settingssl_cert_reqs=none
v4.19.0¶
Release Date: 2025-03-02
Features
Add
novaluesargument tohscanBug Fix
Improve handling of ssl parameters (especially from query string) when dealing with self signed certificates.
v4.18.0¶
Release Date: 2024-12-10
Features
Added ability to use credential providers to supply authentication details when establishing connections to the server
Added support for hash field expiry commands introduced in redis 7.4: *
hexpire*hexpireat*hpexpire*hpexpireat*hpersist*hexpiretime*hpexpiretime*httlAdded support for
maxageparameter inclient_killmethod.
Compatibility
Added support for python 3.13 wheels
Dropped support for python 3.8
Dropped support for pypy 3.8
Added test coverage for pypy 3.10
Added test coverage for redis 7.4.x
Added test coverage against redict servers
Added test coverage for Valkey 7.0 & 8.0
v4.18.0rc4¶
Release Date: 2024-12-09
Chore
Fix artifact download in github release workflow
v4.18.0rc3¶
Release Date: 2024-12-09
Chore
Fix github release workflow
v4.18.0rc2¶
Release Date: 2024-12-08
Compatibility
Update redict docker images to use alpine
v4.18.0rc1¶
Release Date: 2024-12-07
Features
Added ability to use credential providers to supply authentication details when establishing connections to the server
Added support for hash field expiry commands introduced in redis 7.4: *
hexpire*hexpireat*hpexpire*hpexpireat*hpersist*hexpiretime*hpexpiretime*httlAdded support for
maxageparameter inclient_killmethod.
Compatibility
Added support for python 3.13 wheels
Dropped support for python 3.8
Dropped support for pypy 3.8
Added test coverage for pypy 3.10
Added test coverage for redis 7.4.x
Added test coverage against redict servers
Added test coverage for Valkey 7.0 & 8.0
v4.17.0¶
Release 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)
v4.16.0¶
Release Date: 2023-08-30
Bug fix
Fix intermittent errors due to mismatched responses when multiple couroutines access a new connection pool.
Compatibility
Remove support for python 3.7
Remove Redis 6.0 from CI
Disable RedisGraph tests in CI as the module is now not part of Redis Stack
Fix RESP3 compatibility for RedisSearch
Mark json.resp as deprecated
v4.16.0rc1¶
Release Date: 2023-08-11
Bug fix
Fix intermittent errors due to mismatched responses when multiple couroutines access a new connection pool.
v4.15.1¶
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
v4.15.0¶
Release Date: 2023-08-09
Bug fix
Improve cleanup on socket disconnect by clearing internal response buffer
Chores
Add typing overload for
lpopmethodRemove 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
v4.14.0¶
Release Date: 2023-05-22
Features
Improve parsing of
TS.INFOresponse forrulessectionBroaden input parameter type annotations when expecting a mapping to use
Mappinginstead ofDict
Compatibility
Update parsing of timeseries module responses to be compatible with RESP3 responses
Chores
Update CI to test against 7.2-rc2
Update mypy dependency
v4.13.3¶
Release Date: 2023-05-10
Feature
Add
json.msetcommand
Bug Fix
Remove caching for
json.mgetEnsure hint from moved errors are used on next attempt
v4.13.2¶
Release Date: 2023-05-08
Feature
Add
json.mergecommand
Bug fix
Fix exception message for unsupported commands
v4.13.1¶
Release Date: 2023-05-03
Hack
Downgrade sphinx back to 6.x for theme compatibility
v4.13.0¶
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
v4.12.4¶
Release Date: 2023-04-29
Chores
Expand coverage of modules tests to include RESP2
Allow failures for “next” versions of redis in CI
v4.12.3¶
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
v4.12.2¶
Release Date: 2023-04-22
Chore
Clean up changelog entries
v4.12.1¶
Release Date: 2023-04-22
Bug Fix
Ensure task cancellation results in proper cleanup of a connection that might be blocked
v4.12.0¶
Release 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_policyto client constructorsExpose
noevictin client constructorsAdd initial support for redis 7.2
Expose
notouchin client constructorsAdd support for
client_no_touch()Add support for
client_setinfo()Add support for
waitaof()Add new
withscoreargument forzrank()&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
v4.12.0rc1¶
Release 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
v4.12.0b4¶
Release Date: 2023-04-10
Features
Add support for RedisSearch module
Allow adding streams to stream consumers after initialization
Chores
Update mypy
v4.12.0b3¶
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
v4.12.0b2¶
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
v4.12.0b1¶
Release Date: 2023-03-26
Features
Expose
retry_policyto client constructorsExpose
noevictin client constructorsAdd initial support for redis 7.2
Expose
notouchin client constructorsAdd support for
client_no_touch()Add support for
client_setinfo()Add support for
waitaof()Add new
withscoreargument forzrank()&zrevrank()Add new context manager
ensure_persistence()
Bug Fix
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
v4.11.6¶
Release Date: 2023-04-22
Bug Fix
Ensure task cancellation results in proper cleanup of a connection that might be blocked
v4.11.5¶
Release Date: 2023-04-04
Bug Fix
Ensure
protocol_versionis parsed as an int from url
v4.11.4¶
Release Date: 2023-04-04
Bug Fix
Ensure
protocol_versionis parsed as an int from url
v4.11.3¶
Release Date: 2023-03-11
Chores
Update cibuildwheels action
Update versioneer
Migrate setup.cfg to pyproject
Parallelize CI wheel build
Reintroduce ruff for linting
v4.11.2¶
Release Date: 2023-03-09
Chores
Add changelog link to pypi
v4.11.1¶
Release Date: 2023-03-09
Bug Fix
Ensure prebuilt wheels contain compiled extensions
v4.11.0¶
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
v4.10.3¶
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
v4.10.2¶
Release Date: 2022-12-24
Chores
Update test certificates
Update development dependencies
v4.10.1¶
Release Date: 2022-12-11
Compatibility
Upgrade documentation dependencies
Relax version contraint for packaging dependency
v4.10.0¶
Release Date: 2022-11-21
Feature
Allow using async functions as callbacks for pubsub message handlers
v4.9.0¶
Release Date: 2022-11-09
Feature
Update implementation of transactional pipeline and the behavior of the
transactionmethod exposed by they cluster client to be consistent with the standalone client.
Breaking changes
Pipeline instances passed into the callable
funcparameter of the clustertransactionmethod will no longer automatically queue commands until a call tomultiis issued to be consistent with the implementation in the standalone client.
v4.8.3¶
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
v4.8.2¶
Release Date: 2022-10-31
Bug Fix
Fix wheels for macos
v4.8.1¶
Release Date: 2022-10-29
Feature
Extend
decodingcontext manager to selecting codec overrides
v4.8.0¶
Release Date: 2022-10-28
Feature
Add a
decodingcontext manager to control decoding behavior
Performance
Remove validation code paths at decoration time in optimized mode
v4.7.1¶
Release Date: 2022-10-31
Bug Fix
Fix wheels for macos
v4.7.0¶
Release Date: 2022-10-26
Feature
Add optimized mode to allow skipping validation code paths
Add
lastidparameter toxclaimmethod
Bug Fix
Ensure
LuaLockcontext manager throws an exception when a lock cannot be acquired
Compatibility
Add final python 3.11 wheels
v4.6.0¶
Release Date: 2022-10-10
Feature
Implement early release back to connection pool to allow multiple concurrent commands to use the some connection thus significantly reducing the need to expand the connection pool when using blocking connection pools
Bug Fix
Add a lock when initializing the cluster client to ensure concurrent “first access” does not result in corruption of the cluster node layout or a thundering herd to initialize the layout
Compatibility
Enable wheel build for python 3.11
Chores
Improve stability of test suite
Enable recursive response types for mypy & pyright
v4.5.6¶
Release Date: 2022-08-31
Bug Fix
Remove duplicated initialization calls to connection pool & cache
v4.5.5¶
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.
v4.5.4¶
Release Date: 2022-08-08
Bug Fix
Fix leftover default connection pool construction in blocking cluster connection pool
Chores
Reduce excessive matrix in default CI
Add scheduled compatibility CI run
Cleanup unnecessary asyncio markers in tests
Refactor readonly command detection to use command flags from redis documentation
Issue warning if
Redis.select()is called directly
v4.5.3¶
Release Date: 2022-08-03
Bug Fix
Ensure default cluster connection pools are not recreated upon access. (Issue 92)
v4.5.2¶
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
v4.5.1¶
Release Date: 2022-08-02
Bug Fix
Fix context leak when commands issued within ensure_replication and ignore_replies context managers fail
Recipes
Fix LUA lock recipe to work with clusters with no replicas.
Ensure LUA lock recipe waits on replication of lock to n/2 replicas if replicas exist in the cluster
v4.5.0¶
Release Date: 2022-07-30
Compatibility
Bring back python 3.7 support
v4.4.0¶
Release Date: 2022-07-26
Breaking changes
Default nodemanager_follow_cluster to True
Deprecations
Deprecate readonly constructor argument in cluster client in favor of read_from_replicas
Remove invalid property setter for noreply mode
Bug Fixes
Fix incorrect behavior of ignore_replies context manager as it was not actually setting CLIENT REPLY and simply discarding connections
Ensure fetching a random connection doesn’t deplete the node list in the connection pool
Ensure connection pools are disconnected on finalization to avoid leaking connections
v4.3.1¶
Release 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
v4.3.0¶
Release Date: 2022-07-22
Features
Introduced
coredis.pool.BlockingClusterConnectionPoolAllow passing
connection_pool_clsandconnection_pool_clsto pick the connection pool implementation during client construction
Breaking Changes
RedisClusternow raises aConnectionErrorwhen a connection can’t be acquired due tomax_connectionsbeing hit.
v4.2.1¶
Release Date: 2022-07-21
Compatibility
Add support and test coverage for PyPy 3.8.
Bug Fix
Ensure
coredis.RedisCluster.ensure_replication()can be used withreplicas< total number of replicas
v4.2.0¶
Release Date: 2022-07-20
Bug Fix
Fix routing of
coredis.Redis.script_kill()andcoredis.Redis.function_kill()to only route to primariesEnsure all arguments expecting collections consistently use
coredis.typing.Parameters
Chores
Fix ordering of keyword arguments of
coredis.Redis.set()to be consistent with command documentationImprove documentation regarding request routing and repsonse merging for cluster multi node and multi shard commands
Sort all literal annotations
v4.1.1¶
Release Date: 2022-07-18
Bug Fix
Ensure lua scripts for lock recipe are included in package
v4.1.0¶
Release 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
v4.0.2¶
Release Date: 2022-07-16
Compatibility
Relax version checking to only warn if a server reports a non standard server version (for example with Redis-like databases)
Raise an exception when client tracking is not available and server assisted caching cannot be used (for example with upstash provisioned redis instances)
Documentation
Add more detail about Sharded Pub/Sub
v4.0.1¶
Release Date: 2022-07-16
Documentation
Added section about reliability in handbook
Improved cross referencing
v4.0.0¶
Release Date: 2022-07-15
Features
Added support for using
noreplywhen sending commands (see No Reply Mode)Added support for ensuring replication to
nreplicas usingensure_replication().Moved
KeyDBclient out of experimental namespace
Backward incompatible changes
Use RESP3 as default protocol version (see handbook/response:redis response)
non_atomic_cross_slotis default behavior for cluster clientsMoved exceptions out of root namespace to
coredis.exceptionsRemoved Lock implementations
Dropped support for hiredis (see Parsers)
Removed
StrictRedis&StrictRedisClusteraliases
v3.11.5¶
Release Date: 2022-07-13
Chore
Remove python 3.11 binary wheel builds
v3.11.4¶
Release Date: 2022-07-09
Bug Fix
Fix issue with sharded pubsub not handling multiple channel subscriptions
v3.11.3¶
Release Date: 2022-07-07
Bug Fix
Correct implementation of restore command when absttl argument is True.
v3.11.2¶
Release Date: 2022-06-30
Bug Fix
Ignore case when comparing error strings to map to exceptions
v3.11.1¶
Release Date: 2022-06-29
Bug Fix
Fix incorrect handling of
non_atomic_cross_slotcommands when not all nodes are required for a command
v3.11.0¶
Release Date: 2022-06-25
Features
Added
coredis.Redis.noreplyandcoredis.RedisCluster.noreplyoption to Redis & RedisCluster constructors to allow using the client without waiting for response from the serverBuild wheels for all architectures supported by cibuildwheel
Deprecations / Removals
Remove deprecated sentinel methods
Add warnings for
client_setname(),client_reply()andauth()commands
Bug Fixes
Fix missing
protocol_versionin cluster pipeline code paths
v3.10.1¶
Release Date: 2022-06-18
Chores
Documentation tweaks
v3.10.0¶
Release Date: 2022-06-18
Features
Expose ssl parameters in
coredis.RedisClusterconstructorExpose
ssl_check_hostnameparameter in Redis/RedisCluster constructorsSeparate opt-in cache behaviors into protocols leaving
AbstractCacheas the minimal implementation requiredExpose cache stats through the
statsproperty, returning aCacheStatsdataclass.Allow
dynamic_confidenceto increase cache confidence up to 100% instead of capping it at the originalconfidencevalue provided
Chores
Improve documentation for caching
Improve test coverage for ssl connections
Add test coverage for cluster ssl clients
v3.9.3¶
Release Date: 2022-06-15
Features
Expose
cacheparameter to Sentinel managed clients
Bug Fix
Handle error parsing command not found exception
v3.9.2¶
Release Date: 2022-06-14
Features
Add option to define confidence in cached entries
v3.9.1¶
Release Date: 2022-06-13
Features
Extend coverage of cachable commands
Expose option to share TrackingCache between client
v3.9¶
Release Date: 2022-06-12
Features
Add support for client side caching (Caching)
v3.8.12¶
Release Date: 2022-06-10
Features
Add support for sharded pubsub for redis 7.0.1 (Cluster Pub/Sub)
Expose
verify_versionparameter tocoredis.Redis.from_url()factory function
Experiments
Extend CI coverage for keydb & dragonfly
v3.8.11¶
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
v3.8.10¶
Release Date: 2022-06-07
Features
New
nodenamesparameter added to sentinel_info_cache
Chores
Added redis 7.0 to sentinel test coverage matrix
v3.8.9¶
Release Date: 2022-06-05
Bug Fix
Fix type annotation for hmget
Experiments
Add CI coverage for dragonflydb
v3.8.7¶
Release Date: 2022-06-04
Features
Add support for python 3.11 (b3) builds
Performance
Extract python parser and optionally compile it to native code using mypyc
Bug Fixes
Only route PING commands to primaries in cluster mode
Ensure connection errors for commands routed to multiple nodes are retried in case of cluster reconfiguration
Ensure re population of startup nodes is based off latest response from cluster
v3.8.6¶
Release Date: 2022-05-26
Performance
Inline buffering of responses in python parser
v3.8.5¶
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
v3.8.0¶
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
v3.7.57 (“Puffles”)¶
Release Date: 2022-05-19
Features
Stream consumer clients (Simple Consumer and Group Consumer)
Experiments
Updated
KeyDBcommand coverageKeyDBClusterclient
v3.6.0¶
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 modeEnsure
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
v3.5.1¶
Release Date: 2022-05-12
Bug Fix
Fix type annotation for
coredis.response.types.PubSubMessage.datato include int for server responses to subscribe/unsubscribe/psubscribe/punsubscribe
v3.5.0¶
Release Date: 2022-05-10
Features
Added
coredis.commands.Library.wraps()andcoredis.commands.Script.wraps()decorators for creating strict signature wrappers for lua scripts and functions.Add
__call__()method tocoredis.commands.Scriptso it can be called directly without having to go throughcoredis.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]orIterable[ValueT]which would allow strings or bytes to be passed. These are now changed toParameters[KeyT]orParameter[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_versionon bothRedis&RedisClusterconstructors will default toTrueresulting 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.Libraryconstructor andcoredis.Redis.register_library()
v3.4.7¶
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
v3.4.6¶
Release Date: 2022-04-30
Bug Fixes
Ensure protocol_version is captured for constructions with from_url
Fix command name for module_loadex method
v3.4.5¶
Release Date: 2022-04-22
Chore
Fix incorrect type annotations for primitive callbacks
Update test matrix in CI with python 3.11 a7
Update documentation to provide a slightly more detailed background around the project diversion
Experiments
Add basic support for KeyDB
v3.4.4¶
Release Date: 2022-04-21
Chore
Fix github release workflow
v3.4.3¶
Release Date: 2022-04-21
Chore
Fix github release workflow
v3.4.2¶
Release Date: 2022-04-21
Bug fix
Fix error selecting database when
decode_responsesisTrue(Issue 46)
v3.4.1¶
Release Date: 2022-04-12
Chores
Remove unmaintained examples & benchmarks
Simplify setup/package info with respect to stubs
Cleanup documentation landing page
v3.4.0¶
Release Date: 2022-04-11
Features
Updates for breaking changes with
function_loadin redis 7.0 rc3Add
module_loadexmethod
Bug fix
Fix installation error when building from source
v3.3.0¶
Release Date: 2022-04-04
Features
Add explicit key extraction based on key spec for cluster clients
v3.2.0¶
Release Date: 2022-04-02
Features
New APIs:
Server:
Redis.latency_histogramRedis.module_listRedis.module_loadRedis.module_unload
Connection:
Redis.client_no_evict
Cluster:
Redis.cluster_shardsRedis.readonlyRedis.readwrite
Micro optimization to use bytestrings for all hardcoded tokens
Add type hints for pipeline classes
Remove hardcoded pipeline blocked commands
Bug Fix
Disable version checking by default
Fix incorrect key names for server commands
Chores
Move publishing steps to CI
More typing related cleanups
Refactor parsers into a separate module
Improve test coverage to cover non decoding clients
v3.1.1¶
Release Date: 2022-03-24
Bug Fix
Fix extracting version/protocol with binary clients
Features
New APIs:
Redis.cluster_addslotsrangeRedis.cluster_delslotsrangeRedis.cluster_linksRedis.cluster_myid
v3.1.0¶
Release Date: 2022-03-23
Features
Added support for functions
Added runtime checks to bail out early if server version doesn’t support the command
Deprecate custom cluster methods
Issue warning when a deprecated redis command is used
Add support for
RESP3protocol
New APIs:
Scripting:
Redis.fcallRedis.fcall_roRedis.function_deleteRedis.function_dumpRedis.function_flushRedis.function_killRedis.function_listRedis.function_loadRedis.function_restoreRedis.function_stats
Server:
Redis.command_docsRedis.command_getkeysandflagsRedis.command_list
v3.0.3¶
Release Date: 2022-03-21
Bug Fix
Fix autoselection of hiredis when available
v3.0.2¶
Release Date: 2022-03-21
Bug Fix
Fix incorrect response type for
coredis.Redis.exists()(#24)
v3.0.1¶
Release Date: 2022-03-21
Bug Fix
Ensure all submodules are included in package (#23)
Fix conversation of datetime object to pxat value for set command
Chores
Re-add examples folder
Tweak type hints
Make
scan_iterarguments consistent withscan
v3.0.0¶
Release Date: 2022-03-20
Features:
Added type hints to all redis commands
Added support for experimental runtime type checking
Updated APIs upto redis 6.2.0
Added experimental features for redis 7.0.0
New APIs:
Generic:
Redis.copyRedis.migrate
String:
Redis.lcs
List:
Redis.blmpopRedis.lmpop
Set:
Redis.sintercard
Sorted-Set:
Redis.bzmpopRedis.zintercardRedis.zmpop
Scripting:
Redis.eval_roRedis.evalsha_roRedis.script_debug
Stream:
Redis.xautoclaimRedis.xgroup_createconsumerRedis.xgroup_delconsumerRedis.xgroup_setid
Server:
Redis.acl_catRedis.acl_deluserRedis.acl_dryrunRedis.acl_genpassRedis.acl_getuserRedis.acl_listRedis.acl_loadRedis.acl_logRedis.acl_saveRedis.acl_setuserRedis.acl_usersRedis.acl_whoamiRedis.commandRedis.command_countRedis.command_getkeysRedis.command_infoRedis.failoverRedis.latency_doctorRedis.latency_graphRedis.latency_historyRedis.latency_latestRedis.latency_resetRedis.memory_doctorRedis.memory_malloc_statsRedis.memory_purgeRedis.memory_statsRedis.memory_usageRedis.replicaofRedis.swapdb
Connection:
Redis.authRedis.client_cachingRedis.client_getredirRedis.client_idRedis.client_infoRedis.client_replyRedis.client_trackingRedis.client_trackinginfoRedis.client_unblockRedis.client_unpauseRedis.helloRedis.resetRedis.select
Cluster:
Redis.askingRedis.cluster_bumpepochRedis.cluster_flushslotsRedis.cluster_getkeysinslot
Breaking changes:
Most redis command API arguments and return types have been refactored to be in sync with the official docs.
Updated all commands accepting multiple values for an argument to use positional var args only if the argument is optional. For all other cases, use a positional argument accepting an
Iterable. Affected methods:bitop->*keys->keys: Iterable[KeyT]delete->*keys->keys: Iterable[KeyT]exists->*keys->keys: Iterable[KeyT]touch->*keys->keys: Iterable[KeyT]unlink->*keys->keys: Iterable[KeyT]blpop->*keys->keys: Iterable[KeyT]brpop->*keys->keys: Iterable[KeyT]lpush->*elements->elements: Iterable[ValueT]lpushx->*elements->elements: Iterable[ValueT]rpush->*elements->elements: Iterable[ValueT]rpushx->*elements->elements: Iterable[ValueT]mget->*keys->keys: Iterable[KeyT]sadd->*members->members: Iterable[ValueT]sdiff->*keys->keys: Iterable[KeyT]sdiffstore->*keys->keys: Iterable[KeyT]sinter->*keys->keys: Iterable[KeyT]sinterstore->*keys->keys: Iterable[KeyT]smismember->*members->members: Iterable[ValueT]srem->*members` -> ``members: Iterable[ValueT]sunion->*keys->keys: Iterable[KeyT]sunionstore->*keys->keys: Iterable[KeyT]geohash->*members->members: Iterable[ValueT]hdel->*fields->fields: Iterable[ValueT]hmet->*fields->fields: Iterable[ValueT]pfcount->*keys->keys: Iterable[KeyT]pfmerge->*sourcekeys->sourcekeys: Iterable[KeyT]zdiff->*keys->keys: Iterable[KeyT]zdiffstore->*keys->keys: Iterable[KeyT]zinter->*keys->keys: Iterable[KeyT]zinterstore->*keys->keys: Iterable[KeyT]zmscore->*members->members: Iterable[ValueT]zrem->*members->members: Iterable[ValueT]zunion->*keys->keys: Iterable[KeyT]zunionstore->*keys->keys: Iterable[KeyT]xack->*identifiers->identifiers: Iterable[ValueT]xdel->*identifiers->identifiers: Iterable[ValueT]xclaim->*identifiers->identifiers: Iterable[ValueT]script_exists->*sha1s- >sha1s: Iterable[ValueT]client_tracking->*prefixes- >prefixes: Iterable[ValueT]info->*sections- >sections: Iterable[ValueT]
v2.3.2¶
Release Date: 2023-01-09
Bug Fix:
Fix incorrect argument (key instead of field) used for hincrby command
v2.3.1¶
Release Date: 2022-01-30
Chore:
Standardize doc themes
Boo doc themes
v2.3.0¶
Release Date: 2022-01-23
Final release maintaining backward compatibility with aredis
Chore:
Add test coverage for uvloop
Add test coverage for hiredis
Extract tests to use docker-compose
Add tests for basic authentication
v2.2.3¶
Release Date: 2022-01-22
Bug fix:
Fix stalled connection when only username is provided
v2.2.2¶
Release Date: 2022-01-22
Bug fix:
Fix failure to authenticate when just using password
v2.2.1¶
Release Date: 2022-01-21
This release brings in pending pull requests from the original aredis repository and updates the signatures of all implemented methods to be synchronized (as much as possible) with the official redis documentation.
Feature (extracted from pull requests in aredis): * Add option to provide
client_name* Add support for username/password authentication * Add BlockingConnectionPool
v2.1.0¶
Release Date: 2022-01-15
This release attempts to update missing command
coverage for common datastructures and gets closer
to redis-py version 4.1.0
Feature:
Added string commands
decrby,getdel&getexAdded list commands
lmove,blmove&lposAdded set command
smismember- Added sorted set commands
zdiff,zdiffstore,zinter,zmscore, zpopmin,zpopmax,bzpopmin,bzpopmax&zrandmember
- Added sorted set commands
Added geo commands
geosearch,geosearchstoreAdded hash command
hrandfieldAdded support for object inspection commands
object_encoding,object_freq,object_idletime&object_refcountAdded
lolwut
Chore: * Standardize linting against black * Add API documentation * Add compatibility documentation * Add CI coverage for redis 6.0
v2.0.1¶
Release Date: 2022-01-15
Bug Fix:
Ensure installation succeeds without gcc
v2.0.0¶
Release Date: 2022-01-05
Initial import from aredis
Add support for python 3.10
Imported from fork¶
The changelog below is imported from aredis
v1.1.8¶
Fixbug: connection is disconnected before idel check, valueError will be raised if a connection(not exist) is removed from connection list
Fixbug: abstract compat.py to handle import problem of asyncio.future
Fixbug: When cancelling a task, CancelledError exception is not propagated to client
Fixbug: XREAD command should accept 0 as a block argument
Fixbug: In redis cluster mode, XREAD command does not function properly
Fixbug: slave connection params when there are no slaves
v1.1.7¶
Fixbug: ModuleNotFoundError raised when install aredis 1.1.6 with Python3.6
v1.1.6¶
Fixbug: parsing stream messgae with empty payload will cause error(#116)
Fixbug: Let ClusterConnectionPool handle skip_full_coverage_check (#118)
New: threading local issue in coroutine, use contextvars instead of threading local in case of the safety of thread local mechanism being broken by coroutine (#120)
New: support Python 3.8
v1.1.5¶
new: Dev conn pool max idle time (#111) release connection if max-idle-time exceeded
update: discard travis-CI
Fix bug: new stream id used for test_streams
v1.1.4¶
fix bug: fix cluster port parsing for redis 4+(node info)
fix bug: wrong parse method of scan_iter in cluster mode
fix bug: When using “zrange” with “desc=True” parameter, it returns a coroutine without “await”
fix bug: do not use stream_timeout in the PubSubWorkerThread
opt: add socket_keepalive options
new: add ssl param in get_redis_link to support ssl mode
new: add ssl_context to StrictRedis constructor and make it higher priority than ssl parameter
v1.1.3¶
allow use of zadd options for zadd in sorted sets
fix bug: use inspect.isawaitable instead of typing.Awaitable to judge if an object is awaitable
fix bug: implicitly disconnection on cancelled error (#84)
new: add support for streams`(including commands not officially released, see `streams )
v1.1.2¶
fix bug: redis command encoding bug
optimization: sync change on acquring lock from redis-py
fix bug: decrement connection count on connection disconnected
fix bug: optimize code proceed single node slots
fix bug: initiation error of aws cluster client caused by not appropiate function list used
fix bug: use ssl_context instead of ssl_keyfile,ssl_certfile,ssl_cert_reqs,ssl_ca_certs in intialization of connection_pool
v1.1.1¶
fix bug: connection with unread response being released to connection pool will lead to parse error, now this kind of connection will be destructed directly. #52
fix bug: remove Connection.can_read check which may lead to block in awaiting pubsub message. Connection.can_read api will be deprecated in next release. #56
add c extension to speedup crc16, which will speedup cluster slot hashing
add error handling for asyncio.futures.Cancelled error, which may cause error in response parsing.
sync optimization of client list made by swilly22 from redis-py
add support for distributed lock using redis cluster
v1.1.0¶
sync optimization of scripting from redis-py made by bgreenberg redis-py#867
sync bug fixed of geopos from redis-py made by categulario redis-py#888
fix bug which makes pipeline callback function not executed
fix error caused by byte decode issues in sentinel
add basic transaction support for single node in cluster
fix bug of get_random_connection reported by myrfy001
v1.0.9¶
fix bug of pubsub, in some env AssertionError is raised because connection is used again after reader stream being fed eof
add reponse decoding related options(encoding & decode_responses), make client easier to use
add support for command cluster forget
add support for command option spop count
v1.0.8¶
fix initialization bug of redis cluster client
add example to explain how to use client reply on | off | skip
v1.0.7¶
introduce loop argument to aredis
add support for command cluster slots
add support for redis cluster
v1.0.6¶
bitfield set/get/incrby/overflow supported
new command hstrlen supported
new command unlink supported
new command touch supported
v1.0.5¶
fix bug in setup.py when using pip to install aredis
v1.0.4¶
add support for command pubsub channel, pubsub numpat and pubsub numsub
add support for command client pause
reconsitution of commands to make develop easier(which is transparent to user)
v1.0.2¶
add support for cache (Cache and HerdCache class)
fix bug of PubSub.run_in_thread
v1.0.1¶
add scan_iter, sscan_iter, hscan_iter, zscan_iter and corresponding unit tests
fix bug of PubSub.run_in_thread
add more examples
change Script.register to Script.execute