asyncio (PEP 3156) Redis support
Project description
asyncio (PEP 3156) Redis client library.
Features
hiredis parser |
Yes |
Pure-python parser |
TBD |
Low-level & High-level APIs |
Yes |
Connections Pool |
Yes |
Pipelining support |
Yes |
Pub/Sub support |
Yes |
Redis Cluster support |
WIP |
Trollius (python 2.7) |
No |
Tested python versions |
|
Tested for Redis server |
|
Support for dev Redis server |
through low-level API |
Documentation
Usage examples
Simple low-level interface:
import asyncio
import aioredis
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
conn = yield from aioredis.create_connection(
('localhost', 6379), loop=loop)
yield from conn.execute('set', 'my-key', 'value')
val = yield from conn.execute('get', 'my-key')
print(val)
conn.close()
loop.run_until_complete(go())
# will print 'value'
Simple high-level interface:
import asyncio
import aioredis
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
redis = yield from aioredis.create_redis(
('localhost', 6379), loop=loop)
yield from redis.set('my-key', 'value')
val = yield from redis.get('my-key')
print(val)
redis.close()
loop.run_until_complete(go())
# will print 'value'
Connections pool:
import asyncio
import aioredis
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
pool = yield from aioredis.create_pool(
('localhost', 6379),
minsize=5, maxsize=10,
loop=loop)
with (yield from pool) as redis: # high-level redis API instance
yield from redis.set('my-key', 'value')
print((yield from redis.get('my-key')))
yield from pool.clear() # closing all open connections
loop.run_until_complete(go())
Requirements
License
The aioredis is offered under MIT license.
Changes
0.2.4 (2015-10-13)
Python 3.5 async support:
New scan commands API (iscan, izscan, ihscan);
Pool made awaitable (allowing with await pool: ... constructs);
Fixed dropping closed connections from free pool (see #83);
Docs updated;
0.2.3 (2015-08-14)
0.2.2 (2015-07-07)
Decoding data with encoding paramter now takes into account list (array) replies (see #68);
encoding parameter added to following commands:
generic commands: keys, randomkey;
hash commands: hgetall, hkeys, hmget, hvals;
list commands: blpop, brpop, brpoplpush, lindex, lpop, lrange, rpop, rpoplpush;
set commands: smembers, spop, srandmember;
string commands: getrange, getset, mget;
Backward incompatibility:
ltrim command now returns bool value instead of ‘OK’;
Tests updated;
0.2.1 (2015-07-06)
Logging added (aioredis.log module);
Fixed issue with wait_message in pub/sub (see #66);
0.2.0 (2015-06-04)
Pub/Sub support added;
Fix in zrevrangebyscore command (see #62);
Fixes/tests/docs;
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.