Skip to main content

asyncio (PEP 3156) Redis support

Project description

asyncio (PEP 3156) Redis client library.

https://travis-ci.org/aio-libs/aioredis.svg?branch=master https://codecov.io/gh/aio-libs/aioredis/branch/master/graph/badge.svg https://ci.appveyor.com/api/projects/status/wngyx6s98o6hsxmt/branch/master?svg=true

Features

hiredis parser

Yes

Pure-python parser

Yes

Low-level & High-level APIs

Yes

Connections Pool

Yes

Pipelining support

Yes

Pub/Sub support

Yes

SSL/TLS support

Yes

Sentinel support

Yes [1]

Redis Cluster support

WIP

Trollius (python 2.7)

No

Tested CPython versions

3.3, 3.4, 3.5, 3.6

Tested PyPy3 versions

5.7.1

Tested for Redis server

2.6, 2.8, 3.0, 3.2

Support for dev Redis server

through low-level API

Documentation

http://aioredis.readthedocs.io/

Usage examples

Simple low-level interface:

import asyncio
import aioredis

loop = asyncio.get_event_loop()

async def go():
    conn = await aioredis.create_connection(
        ('localhost', 6379), loop=loop)
    await conn.execute('set', 'my-key', 'value')
    val = await conn.execute('get', 'my-key')
    print(val)
    conn.close()
    await conn.wait_closed()
loop.run_until_complete(go())
# will print 'value'

Simple high-level interface:

import asyncio
import aioredis

loop = asyncio.get_event_loop()

async def go():
    redis = await aioredis.create_redis(
        ('localhost', 6379), loop=loop)
    await redis.set('my-key', 'value')
    val = await redis.get('my-key')
    print(val)
    redis.close()
    await redis.wait_closed()
loop.run_until_complete(go())
# will print 'value'

Connections pool:

import asyncio
import aioredis

loop = asyncio.get_event_loop()

async def go():
    pool = await aioredis.create_pool(
        ('localhost', 6379),
        minsize=5, maxsize=10,
        loop=loop)
    await pool.execute('set', 'my-key', 'value')
    print(await pool.execute('get', 'my-key'))
    # graceful shutdown
    pool.close()
    await pool.wait_closed()

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

1.0.0 (2017-xx-xx)

NEW:

  • Connections pool has been refactored; now create_redis function will yield Redis instance instead of RedisPool (see #129);

  • Dropped create_reconnecting_redis, create_redis_pool should be used instead;

  • Implement Sentinel support (see #181);

  • Implement pure-python parser (see #212);

  • Add migrate_keys command (see #187);

  • Add zrevrangebylex command (see #201);

  • Add command, command_count, command_getkeys and command_info commands (see #229);

FIX:

  • Fix critical bug in patched asyncio.Lock (see #256);

  • Fix Multi/Exec transaction canceled error (see #225);

  • Add missing arguments to create_redis and create_redis_pool;

  • Fix deprecation warning (see #191);

  • Make correct __aiter__() (see #192);

  • Backward compatibility fix for with (yield from pool) as conn: (see #205);

  • Fixed pubsub receiver stop() (see #211);

MISC:

  • Multiple test fixes;

  • Add PyPy3 to build matrix;

  • Update dependencies versions;

0.3.2 (2017-06-21)

NEW:

  • Added zrevrangebylex command (see #201), cherry-picked from master;

  • Add connection timeout (see #221), cherry-picked from master;

FIX:

  • Fixed pool close warning (see #239 and #236), cherry-picked from master;

  • Fixed asyncio Lock deadlock issue (see #231 and #241);

0.3.1 (2017-05-09)

FIX:

  • Fix pubsub Receiver missing iter() method (see #203);

0.3.0 (2017-01-11)

NEW:

  • Pub/Sub connection commands accept Channel instances (see #168);

  • Implement new Pub/Sub MPSC (multi-producers, single-consumer) Queue – aioredis.pubsub.Receiver (see #176);

  • Add aioredis.abc module providing abstract base classes defining interface for basic lib components; (see #176);

  • Implement Geo commands support (see #177 and #179);

FIX:

  • Minor tests fixes;

MISC:

  • Update examples and docs to use async/await syntax also keeping yield from examples for history (see #173);

  • Reflow Travis CI configuration; add Python 3.6 section (see #170);

  • Add AppVeyor integration to run tests on Windows (see #180);

  • Update multiple development requirements;

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

aioredis-1.0.0b2.tar.gz (137.2 kB view details)

Uploaded Source

Built Distribution

aioredis-1.0.0b2-py3-none-any.whl (56.6 kB view details)

Uploaded Python 3

File details

Details for the file aioredis-1.0.0b2.tar.gz.

File metadata

  • Download URL: aioredis-1.0.0b2.tar.gz
  • Upload date:
  • Size: 137.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aioredis-1.0.0b2.tar.gz
Algorithm Hash digest
SHA256 eb4626e78f2863fe03203f0e53e86935b998e75de1fca1bf32481f6a0b542d38
MD5 4613e390e330b1df22fdff57c73fb3d2
BLAKE2b-256 5e56d3eafccb7d72bfbea8017b7ada07b8a356822f7e490dcfc2a1320a1f7e79

See more details on using hashes here.

File details

Details for the file aioredis-1.0.0b2-py3-none-any.whl.

File metadata

File hashes

Hashes for aioredis-1.0.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 f0587c2128f202adfcffe931739b0ff381bfd023cfb266fd83c92aa30f6c9a53
MD5 454b629498a9ad9d723cc4dea88a0650
BLAKE2b-256 ef3c8ff457ac0a5e0fdd34cad6ced270bcf8cb2d939131de8b7e93daa4a820cc

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