Releases: DriverX/aioredis-cluster
Releases · DriverX/aioredis-cluster
v2.2.0
- fetch several cluster state candidates from cluster for choose best metadata for final local state
- apply cluster state only if cluster metadata is changed
- FIX: handle closed pubsub connection before gc its collected that trigger
Task was destroyed but it is pending!
message in log - improve logging in state loader
v2.1.0
- fix bug when
ConnectionsPool.acquire()
is stuck because closed PUB/SUB connection is not cleanup fromused
set - fix
ConnectionsPool.acquire()
incorrect wakeup order for connection waiters when connection is released ConnectionsPool.execute()
now acquire dedicate connection for execution if command is blocking, ex.BLPOP
ConnectionsPool.execute()
now raisesValueError
exception for PUB/SUB family command- In
ConnectionsPool
PUB/SUB dedicated connections now is closing onclose()
call - add
aioredis_cluster.abc.AbcConnection
abstract class - add property
readonly
and methodset_readonly()
foraioredis_cluster.abc.AbcConnection
andaioredis_cluster.abc.AbcPool
aioredis_cluster.Cluster
now requirepool_cls
implementation fromaioredis_cluster.abc.AbcPool
- add
ssl
argument for factoriescreate_cluster
,create_redis_cluster
andCluster
constructor - add 10% jitter for cluster state auto reload interval
- fix incorrect iterate free connections in
select()
,auth()
methods forConnectionsPool
v2.0.0
- include
aioredis==1.3.1
source code intoaioredis_cluster._aioredis
and introduceaioredis_cluster.aioredis
but for compatible and migration period - this release have not backward incompatible changes
- DEPRECATION WARNING: you must migrate from
import aioredis
toimport aioredis_cluster.aioredis
becauseaioredis_cluster
starts vendorizeaioredis
package and maintain it separately. Usingaioredis
package will be removed in v3 - fix reacquire connection in
aioredic.ConnectionsPool
after Redis node failure
v1.8.0
v1.7.1
v1.7.0
v1.6.1
v1.6.0
- make public
Address
,ClusterNode
andClusterState
structs. Available by importfrom aioredis_cluster import
Cluster
provides some new helpful methods^get_master_node_by_keys(*keys)
- return masterClusterNode
which contains keyskeys
create_pool_by_addr(addr, **kwargs)
- create connection pool byaddr
and return pool wrapped bycommands_factory
fromCluster
constructor. By default isaioredis_cluster.RedisCluster
instance.get_cluster_state()
- returnClusterState
instance with recent known cluster state received from Redis clusterextract_keys(command_sequence)
- returns keys of command sequence
- drop
pytest-aiohttp
plugin for tests - add
pytest-asyncio
dependency for tests - switch
asynctest
->mock
library for aio tests - drop
attrs
dependency. For Python 3.6 you need installdataclasses
- fix extract keys for
BLPOP
/BRPOP
commands - add support keys extraction for
ZUNION
,ZINTER
,ZDIFF
,ZUNIONSTORE
,ZINTERSTORE
,ZDIFFSTORE
commands - acquire dedicate connection from pool for potential blocking commands like
BLPOP
,BRPOP
,BRPOPLPUSH
,BLMOVE
,BLMPOP
,BZPOPMIN
,BZPOPMAX
,XREAD
,XREADGROUP