Git Product home page Git Product logo

aioredis's Introduction

aioredis

asyncio (PEP 3156) Redis client library.

https://travis-ci.org/aio-libs/aioredis.svg?branch=master 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.5, 3.6 [2]
Tested PyPy3 versions 5.9.0
Tested for Redis server 2.6, 2.8, 3.0, 3.2, 4.0
Support for dev Redis server through low-level API
[1]Sentinel support is available in master branch. This feature is not yet stable and may have some issues.
[2]For Python 3.3, 3.4 support use aioredis v0.3.

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(
        'redis://localhost', 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(
        'redis://localhost', 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(
        'redis://localhost',
        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())

Simple high-level interface with connections pool:

import asyncio
import aioredis

loop = asyncio.get_event_loop()

async def go():
    redis = await aioredis.create_redis_pool(
        'redis://localhost',
        minsize=5, maxsize=10,
        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'

Requirements

Note

hiredis is preferred requirement. Pure-python protocol parser is implemented as well and can be used through parser parameter.

Benchmarks

Benchmarks can be found here: https://github.com/popravich/python-redis-benchmark

Discussion list

aio-libs google group: https://groups.google.com/forum/#!forum/aio-libs

Or gitter room: https://gitter.im/aio-libs/Lobby

License

The aioredis is offered under MIT license.

aioredis's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.