acslater00 / tredis

An asynchronous Redis client for Tornado

Home Page:http://tredis.readthedocs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TRedis

An asynchronous Redis client for Tornado

Version Downloads PythonVersions Status Coverage Code Climate Code issues

Documentation is available at tredis.readthedocs.org.

Commands Implemented

TRedis is a work in progress and not all commands are implemented. The following list details each command category and the number of commands implemented in each.

If you need functionality that is not yet implemented, follow the patterns for the category mixins that are complete and submit a PR!

Category Count
Cluster 0 of 20
Connection 5 of 5
Geo 0 of 6
Hashes 0 of 15
HyperLogLog 3 of 3
Keys 22 of 22
Lists 0 of 17
Pub/Sub 0 of 6
Scripting 0 of 6
Server 0 of 30
Sets 15 of 15
Sorted Sets 0 of 21
Strings 23 of 23
Transactions 0 of 5

For information on local development or contributing, see CONTRIBUTING.rst

Example

client = tredis.RedisClient()

yield client.set('foo', 'bar')
value = yield client.get('foo')

Pipelining

tredis supports pipelining in a different way than other redis clients. To use pipelining, simply call the tredis.RedisClient.pipeline_start() method, then invoke all of the normal commands without yielding to them. When you have created the pipeline, execute it with tredis.RedisClient.pipeline_execute():

client = tredis.RedisClient()

# Start the pipeline
client.pipeline_start()

client.set('foo1', 'bar1')
client.set('foo2', 'bar2')
client.set('foo3', 'bar3')
client.get('foo1')
client.get('foo2')
client.get('foo3')
client.incr('foo4')
client.incr('foo4')
client.get('foo4')

# Execute the pipeline
responses = yield client.pipeline_execute()

# The expected responses should match this list
assert responses == [True, True, True, b'bar1', b'bar2', b'bar3', 1, 2, b'2']

Warning

Yielding after calling RedisClient.pipeline_start() and before calling yield RedisClient.pipeline_execute() can cause asynchronous request scope issues, as the client does not protect against other asynchronous requests from populating the pipeline. The only way to prevent this from happening is to make all pipeline additions inline without yielding to the IOLoop.

About

An asynchronous Redis client for Tornado

http://tredis.readthedocs.org

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 98.8%Language:Shell 1.2%