This project has been archived by its maintainers, and is no longer receiving any updates.
aioredis
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
Discussion list
aio-libs google group: https://groups.google.com/forum/#!forum/aio-libs
License
The aioredis is offered under MIT license.
Changes
0.2.5 (2016-03-02)
Close all Pub/Sub channels on connection close (see #88);
Add iter() method to aioredis.Channel allowing to use it with async for (see #89);
Inline code samples in docs made runnable and downloadable (see #92);
Python 3.5 examples converted to use async/await syntax (see #93);
Fix Multi/Exec to honor encoding parameter (see #94 and #97);
Add debug message in create_connection (see #90);
Replace asyncio.async calls with wrapper that respects asyncio version (see #101);
Use NODELAY option for TCP sockets (see #105);
New aioredis.ConnectionClosedError exception added. Raised if connection to Redis server is lost (see #108 and #109);
Fix RedisPool to close and drop connection in subscribe mode on release;
Fix aioredis.util.decode to recursively decode list responses;
More examples added and docs updated;
Add google groups link to README;
Bump year in LICENSE and docs;
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: ... and async with pool.get() as conn: 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 parameter 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;
Metadata
Release files for aioredis 0.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aioredis-0.2.5.tar.gz | 26.5 kB | Without provenance | Details for aioredis-0.2.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aioredis-0.2.5-py3-none-any.whl | Python 3 | none | any | Details for aioredis-0.2.5-py3-none-any.whl |
Total release size: 63.0 kB
Release files / aioredis-0.2.5.tar.gz
| Download URL | aioredis-0.2.5.tar.gz |
|---|---|
| Size | 26.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7544031b818142b3fe060f6f8bed92327e22a8c76b5f620dc444a578b68870e2
|
|
BLAKE2b-256 checksum How to use checksums |
a38c996935f69198dbf8778291f294554352060d0910d614261b0177f6849fe9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / aioredis-0.2.5-py3-none-any.whl
| Download URL | aioredis-0.2.5-py3-none-any.whl |
|---|---|
| Size | 36.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
63d40dbb3cef3b3e930bb9bb1fb14a875a5b4a8fe78a7886ce9fce0a6f658346
|
|
BLAKE2b-256 checksum How to use checksums |
6619796b8d8fe07dd0ef3c45a9e7d5c57e26b2d5b80f2e5e3524a1cba0a267f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for aioredis 0.2.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.