Skip to content

thefab/tornadis

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

tornadis

Status (master branch)

Travis Coverage Status Code Health License Maturity Maintenance

What is it ?

tornadis is an async minimal redis client for tornado ioloop designed for performance (uses C hiredis parser).

WARNING : tornadis is considered in beta quality (API can change)

Features

  • simple
  • good performances
  • coroutine friendly
  • production ready (timeouts, connection pool, error management)
  • nearly all redis features (pipeline, pubsub, standard commands)
  • autoconnection, autoreconnection
  • Python2 (>=2.7) and Python3 (>=3.2) support
  • Tornado >=4.2 (in master branch) and Tornado 4.1 + toro (in tornado41 branch) support

Not implemented

  • cluster support

Example

# Let's import tornado and tornadis
import tornado
import tornadis


@tornado.gen.coroutine
def talk_to_redis():
    # let's (re)connect (autoconnect mode), call the ping redis command
    # and wait the reply without blocking the tornado ioloop
    # Note: call() method on Client instance returns a Future object (and
    # should be used as a coroutine).
    result = yield client.call("PING")
    if isinstance(result, tornadis.TornadisException):
        # For specific reasons, tornadis nearly never raises any exception
        # they are returned as result
        print "got exception: %s" % result
    else:
        # result is already a python object (a string in this simple example)
        print "Result: %s" % result


# Build a tornadis.Client object with some options as kwargs
# host: redis host to connect
# port: redis port to connect
# autoconnect=True: put the Client object in auto(re)connect mode
client = tornadis.Client(host="localhost", port=6379, autoconnect=True)

# Start a tornado IOLoop, execute the coroutine and end the program
loop = tornado.ioloop.IOLoop.instance()
loop.run_sync(talk_to_redis)

Full documentation

Full documentation is available at http://tornadis.readthedocs.org

About

async minimal redis client for tornado ioloop designed for performances (use C hiredis parser)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages