Skip to main content

Python async client for Redis key-value store

Project description

Latest Version in PyPI CircleCI build status Supported Python versions

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

For more example

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aredis-1.1.8.tar.gz (128.8 kB view details)

Uploaded Source

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

Hashes for aredis-1.1.8.tar.gz
Algorithm Hash digest
SHA256 880bcf91c4f89b919311cc93626bbc70901c6e5c4fdb3dcba643411e3ee40bcf
MD5 1ff3630906f395ddfef12b9dbf2b850e
BLAKE2b-256 57be88a14ad051da02c261fedde9adbd73aeed172a8d484fd76be634168d2300

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page