.. _aredis: https://github.com/NoneGG/aredis

Changelog
=========

v2.1.0
------
Release Date: 2022-01-15

This release attempts to update missing command
coverage for common datastructures and gets closer
to :pypi:`redis-py` version ``4.1.0``

Feature:

    * Added string commands ``decrby``, ``getdel`` & ``getex``
    * Added list commands ``lmove``, ``blmove`` & ``lpos``
    * Added set command ``smismember``
    * Added sorted set commands ``zdiff``, ``zdiffstore``, ``zinter``, ``zmscore``,
      ``zpopmin``, ``zpopmax``, ``bzpopmin``, ``bzpopmax`` & ``zrandmember``
    * Added geo commands ``geosearch``, ``geosearchstore``
    * Added hash command ``hrandfield``
    * Added support for object inspection commands ``object_encoding``, ``object_freq``, ``object_idletime`` & ``object_refcount``
    * Added ``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 <http://aredis.readthedocs.io/en/latest/streams.html>`_ )

------
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 <https://github.com/NoneGG/aredis/issues/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 <https://github.com/NoneGG/aredis/issues/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 <https://github.com/bgreenberg-eb>`_ `redis-py#867 <https://github.com/andymccurdy/redis-py/pull/867>`_
    * sync bug fixed of `geopos` from redis-py made by `categulario <https://github.com/categulario>`_ `redis-py#888 <https://github.com/andymccurdy/redis-py/pull/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`

