Release Notes


  • add TCP Keep-alive support by passing use the socket_keepalive=True option. Finer grain control can be achieved using the socket_keepalive_options option which expects a dictionary with any of the keys (socket.TCP_KEEPIDLE, socket.TCP_KEEPCNT, socket.TCP_KEEPINTVL) and integers for values. Thanks Stefan Tjarks.


  • 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


  • add support for cache (Cache and HerdCache class)
  • fix bug of PubSub.run_in_thread


  • 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)


  • fix bug in when using pip to install aredis


  • bitfield set/get/incrby/overflow supported
  • new command hstrlen supported
  • new command unlink supported
  • new command touch supported


  • introduce loop argument to aredis
  • add support for command cluster slots
  • add support for redis cluster


  • fix initialization bug of redis cluster client
  • add example to explain how to use client reply on | off | skip


  • 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


  • sync optimization of scripting from redis-py made by bgreenberg related pull request
  • sync bug fixed of geopos from redis-py made by categulario related pull request
  • 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


  • 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. related issue
  • 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. related issue
  • 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


  • 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



  • 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


  • 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


  • 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


  • Fixbug: ModuleNotFoundError raised when install aredis 1.1.6 with Python3.6


  • Fixbug: connection is disconnected before idel check, valueError will be raised if a connection(not exist) is removed from connection list
  • Fixbug: abstract 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