Python async client for Redis key-value store
Project description
An efficient and user-friendly async redis client ported from redis-py (which is a Python interface to the Redis key-value)
To get more information please read full document
Installation
aredis requires a running Redis server.
To install aredis, simply:
$ sudo pip3 install aredis
or alternatively (you really should be using pip though):
$ sudo easy_install aredis
or from source:
$ sudo python setup.py install
Getting started
single node client
>>> import asyncio
>>> from aredis import StrictRedis
>>>
>>> async def example():
>>> client = StrictRedis(host='127.0.0.1', port=6379, db=0)
>>> await client.flushdb()
>>> await client.set('foo', 1)
>>> assert await client.exists('foo') is True
>>> await client.incr('foo', 100)
>>>
>>> assert int(await client.get('foo')) == 101
>>> await client.expire('foo', 1)
>>> await asyncio.sleep(0.1)
>>> await client.ttl('foo')
>>> await asyncio.sleep(1)
>>> assert not await client.exists('foo')
>>>
>>> loop = asyncio.get_event_loop()
>>> loop.run_until_complete(example())
cluster client
>>> import asyncio
>>> from aredis import StrictRedisCluster
>>>
>>> async def example():
>>> client = StrictRedisCluster(host='172.17.0.2', port=7001)
>>> await client.flushdb()
>>> await client.set('foo', 1)
>>> await client.lpush('a', 1)
>>> print(await client.cluster_slots())
>>>
>>> await client.rpoplpush('a', 'b')
>>> assert await client.rpop('b') == b'1'
>>>
>>> loop = asyncio.get_event_loop()
>>> loop.run_until_complete(example())
{(10923, 16383): [{'host': b'172.17.0.2', 'node_id': b'332f41962b33fa44bbc5e88f205e71276a9d64f4', 'server_type': 'master', 'port': 7002},
{'host': b'172.17.0.2', 'node_id': b'c02deb8726cdd412d956f0b9464a88812ef34f03', 'server_type': 'slave', 'port': 7005}],
(5461, 10922): [{'host': b'172.17.0.2', 'node_id': b'3d1b020fc46bf7cb2ffc36e10e7d7befca7c5533', 'server_type': 'master', 'port': 7001},
{'host': b'172.17.0.2', 'node_id': b'aac4799b65ff35d8dd2ad152a5515d15c0dc8ab7', 'server_type': 'slave', 'port': 7004}],
(0, 5460): [{'host': b'172.17.0.2', 'node_id': b'0932215036dc0d908cf662fdfca4d3614f221b01', 'server_type': 'master', 'port': 7000},
{'host': b'172.17.0.2', 'node_id': b'f6603ab4cb77e672de23a6361ec165f3a1a2bb42', 'server_type': 'slave', 'port': 7003}]}
Benchmark
Please run test script in benchmarks dir to confirm the benchmark.
For benchmark in my environment please see: benchmark
Contributing
Enhancement, bug reports and Pull requests are welcomed, please make an issue to let me know. Fork me please~
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.
Source Distribution
File details
Details for the file aredis-1.1.8.tar.gz.
File metadata
- Download URL: aredis-1.1.8.tar.gz
- Upload date:
- Size: 128.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/2.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
880bcf91c4f89b919311cc93626bbc70901c6e5c4fdb3dcba643411e3ee40bcf
|
|
| MD5 |
1ff3630906f395ddfef12b9dbf2b850e
|
|
| BLAKE2b-256 |
57be88a14ad051da02c261fedde9adbd73aeed172a8d484fd76be634168d2300
|