Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/NoneGG/aredis
redis client for Python asyncio (has support for redis server, sentinel and cluster)
https://github.com/NoneGG/aredis
async asyncio redis-client redis-cluster
Last synced: about 1 month ago
JSON representation
redis client for Python asyncio (has support for redis server, sentinel and cluster)
- Host: GitHub
- URL: https://github.com/NoneGG/aredis
- Owner: NoneGG
- License: mit
- Created: 2016-12-16T09:30:46.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-07-14T14:13:11.000Z (over 1 year ago)
- Last Synced: 2024-11-17T14:03:45.382Z (about 2 months ago)
- Topics: async, asyncio, redis-client, redis-cluster
- Language: Python
- Homepage: http://aredis.readthedocs.io/en/latest/
- Size: 706 KB
- Stars: 646
- Watchers: 21
- Forks: 96
- Open Issues: 63
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
aredis
======
|pypi-ver| |circleci-status| |python-ver|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`_
.. _full document: http://aredis.readthedocs.io/en/latest/
Installation
------------aredis requires a running Redis server.
To install aredis, simply:
.. code-block:: bash
$ pip3 install aredis[hiredis]
or from source:
.. code-block:: bash
$ python setup.py install
Getting started
---------------`More examples`_
.. _More examples: https://github.com/NoneGG/aredis/tree/master/examples
Tip: since python 3.8 you can use asyncio REPL:
.. code-block:: bash
$ python -m asyncio
single node client
^^^^^^^^^^^^^^^^^^.. code-block:: python
import asyncio
from aredis import StrictRedisasync 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
^^^^^^^^^^^^^^.. code-block:: python
import asyncio
from aredis import StrictRedisClusterasync 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`_
.. _benchmark: http://aredis.readthedocs.io/en/latest/benchmark.html
.. |circleci-status| image:: https://img.shields.io/circleci/project/github/NoneGG/aredis/master.svg
:alt: CircleCI build status
:target: https://circleci.com/gh/NoneGG/aredis/tree/master.. |pypi-ver| image:: https://img.shields.io/pypi/v/aredis.svg
:target: https://pypi.python.org/pypi/aredis/
:alt: Latest Version in PyPI.. |python-ver| image:: https://img.shields.io/pypi/pyversions/aredis.svg
:target: https://pypi.python.org/pypi/aredis/
:alt: Supported Python versionsContributing
------------Enhancement, bug reports and Pull requests are welcomed, please make an issue to let me know.
Fork me please~