Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Python async client for Redis key-value store

Project description

Latest Version in PyPI Travis 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


Release history Release notifications

This version
History Node

1.1.2

History Node

1.1.1

History Node

1.1.0

History Node

1.0.9

History Node

1.0.8

History Node

1.0.7

History Node

1.0.6

History Node

1.0.5

History Node

1.0.4

History Node

1.0.3

History Node

1.0.1

History Node

1.0.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
aredis-1.1.2.tar.gz (122.8 kB) Copy SHA256 hash SHA256 Source None Mar 31, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page