asyncio (PEP 3156) Redis support
Version v2.0.1
Version 2.0 is a complete rewrite of aioredis. Starting with this version, aioredis now follows the API of redis-py, so you can easily adapt synchronous code that uses redis-py for async applications with aioredis-py.
NOTE: This version is not compatible with earlier versions of aioredis. If you upgrade, you will need to make code changes.
For more details, read our documentation on migrating to version 2.0.
pool.wait_closed()
upon create_pool()
exception (see #671);loop
argument.
Throw warning in Python 3.8+ if explicit loop
is passed to methods (see #666).NEW:
Implemented new Stream command support (see #299);
Reduce encode_command()
cost about 60% (see #397);
FIX:
Fix pipeline commands buffering was causing multiple sendto
syscalls (see #464 and #473);
Python 3.7 compatibility fixes (see #426);
Fix typos in documentation (see #400);
Fix INFO
command result parsing (see #405);
Fix bug in ConnectionsPool._drop_closed
method (see #461);
MISC:
Update dependencies versions;
Multiple tests improvements;
NEW:
Implement new commands: wait
, touch
, swapdb
, unlink
(see #376);
Add async_op
argument to flushall
and flushdb
commands (see #364, and #370);
FIX:
Important! Fix Sentinel sentinel client with pool minsize
greater than 1 (see #380);
Fix SentinelPool.discover_timeout
usage (see #379);
Fix Receiver
hang on disconnect (see #354 and #366);
Fix an issue with subscribe
/psubscribe
with empty pool (see #351 and #355);
Fix an issue when StreamReader
's feed_data is called before set_parser (see #347);
MISC:
Update dependencies versions;
Multiple test fixes;
NEW:
Important! Drop Python 3.3, 3.4 support; (see #321, #323 and #326);
Important! Connections pool has been refactored; now create_redis
function will yield Redis
instance instead of RedisPool
(see #129);
Important! Change sorted set commands reply format:
return list of tuples instead of plain list for commands
accepting withscores
argument
(see #334);
Important! Change hscan
command reply format:
return list of tuples instead of mixed key-value list
(see #335);
Implement Redis URI support as supported address
argument value
(see #322);
Dropped create_reconnecting_redis
, create_redis_pool
should be
used instead;
Implement custom StreamReader
(see #273);
Implement Sentinel support (see #181);
Implement pure-python parser (see #212);
Add migrate_keys
command
(see #187);
Add zrevrangebylex
command
(see #201);
Add command
, command_count
, command_getkeys
and
command_info
commands
(see #229);
Add ping
support in pubsub connection
(see #264);
Add exist
parameter to zadd
command
(see #288);
Add MaxClientsError
and implement ReplyError
specialization
(see #325);
Add encoding
parameter to sorted set commands
(see #289);
FIX:
Fix CancelledError
in conn._reader_task
(see #301);
Fix pending commands cancellation with CancelledError
,
use explicit exception instead of calling cancel()
method
(see #316);
Correct error message on Sentinel discovery of master/slave with password (see #327);
Fix bytearray
support as command argument
(see #329);
Fix critical bug in patched asyncio.Lock (see #256);
Fix Multi/Exec transaction canceled error (see #225);
Add missing arguments to create_redis
and create_redis_pool
;
Fix deprecation warning (see #191);
Make correct __aiter__()
(see #192);
Backward compatibility fix for with (yield from pool) as conn:
(see #205);
Fixed pubsub receiver stop() (see #211);
MISC:
Multiple test fixes;
Add PyPy3 to build matrix;
Update dependencies versions;
Add missing Python 3.6 classifier;
Fix:
FIX:
Fixed:
asyncio.Lock
(see #256);Fixed:
asyncio.Lock
(see #256);