Skip to main content

An asynchronous Redis client for Tornado

Project description

An asynchronous Redis client for Tornado

Version Downloads Status Coverage CodeClimate PythonVersions

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 0 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 3 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tredis, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size tredis-0.1.0-py2.py3-none-any.whl (25.9 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size tredis-0.1.0.tar.gz (20.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page