Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

aioredis

asyncio (PEP 3156) Redis client library.

https://travis-ci.org/aio-libs/aioredis.svg?branch=master https://coveralls.io/repos/aio-libs/aioredis/badge.svg?branch=master&service=github

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

3.3, 3.4, 3.5

Tested for Redis server

2.6, 2.8, 3.0

Support for dev Redis server

through low-level API

Documentation

http://aioredis.readthedocs.org/

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)

  • Redis cluster support work in progress;

  • Fixed pool issue causing pool growth over max size & acquire call hangs (see #71);

  • info server command result parsing implemented;

  • Fixed behavior of util functions (see #70);

  • hstrlen command added;

  • Few fixes in examples;

  • Few fixes in documentation;

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)

Source distribution for aioredis 0.2.5
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)

Table of built distributions (wheels) for aioredis 0.2.5
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page