Skip to main content

Cluster library for redis 3.0.0 built on top of redis-py lib

Project description

# Alpha notes

Release 0.1.0 of redis-cluster is a Alpha release.

Before using this lib please read the documentation and understand the major differences and problems that exists with redis clustering. The following documents is best to read.

  • [Command differences](docs/Commands.md)

  • [Limitations and differences](docs/Limits_and_differences.md)

It is recommended to test this lib in real world scenarios to find problems and areas to improve for next release.

It is NOT recommended to run this lib in production.

If you find any bugs or have ideas for improvment please open a ticket at https://github.com/Grokzen/redis-py-cluster

# redis-py-cluster

Redis cluster client in python for the official cluster support targeted for redis 3.0.

This project is a port of redis-rb-cluster by antirez, with alot of added functionality. The original source can be found at https://github.com/antirez/redis-rb-cluster

[![Build Status](https://travis-ci.org/Grokzen/redis-py-cluster.svg?branch=master)](https://travis-ci.org/Grokzen+/redis-py-cluster) [![Coverage Status](https://coveralls.io/repos/Grokzen/redis-py-cluster/badge.png)](https://coveralls.io/r/Grokzen/redis-py-cluster) [![Latest Version](https://pypip.in/version/redis-py-cluster/badge.svg)](https://pypi.python.org/pypi/redis-py-cluster/) [![Downloads](https://pypip.in/download/redis-py-cluster/badge.svg)](https://pypi.python.org/pypi/redis-py-cluster/) [![Supported Python versions](https://pypip.in/py_versions/redis-py-cluster/badge.svg)](https://pypi.python.org/pypi/redis-py-cluster/) [![License](https://pypip.in/license/redis-py-cluster/badge.svg)](https://pypi.python.org/pypi/redis-py-cluster/)

## Dependencies & supported python versions

  • redis >= 2.9.1

  • Cluster enabled redis servers. Only Redis 3.0 beta.7 and above is supported because of CLUSTER SLOTS command was introduced in that release.

Current python support is

  • 2.7 + hiredis

  • 3.2 + hiredis

  • 3.3 + hiredis

  • 3.4 + hiredis

## Installation

Latest stable release from pypi

` $ pip install redis-py-cluster `

or from source

` $ python setup.py install `

## Usage example

Small sample script that show how to get started with RedisCluster. decode_responses=True is required to have when running on python3.

`python >>> from rediscluster import RedisCluster >>> startup_nodes = [{"host": "127.0.0.1", "port": "7000"}] >>> rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True) >>> rc.set("foo", "bar") True >>> rc.get("foo") 'bar' `

## Testing

All tests are currently built around a 6 redis server cluster setup (3 masters + 3 slaves). One server must be using port 7000 for redis cluster discovery.

The easiest way to setup a cluster is to use either a Docker or Vagrant. They are both described in [Setup a redis cluster. Manually, Docker & Vagrant](docs/Cluster_Setup.md).

### Tox - Multi environment testing

Tox is the easiest way to run all tests because it will manage all dependencies and run the correct test command for you.

TravisCI will use tox to run tests on all supported python & hiredis versions.

Install tox with pip install tox

To run all environments you need all supported python versions installed on your machine. (See supported python versions list) and you also need the python-dev package for all python versions to build hiredis.

To run a specific python version use either tox -e py27 or tox -e py34

## More documentation

More detailed documentation can be found in docs folder.

  • [Pubsub](docs/Pubsub.md)

  • [Setup a redis cluster. Manually, Docker & Vagrant](docs/Cluster_Setup.md)

  • [Command differences](docs/Commands.md)

  • [Limitations and differences](docs/Limits_and_differences.md)

  • [Redisco support (Django ORM)](docs/Redisco.md)

  • [Authors](docs/Authors)

## Disclaimer

Both this client and Redis Cluster are a work in progress that is not suitable to be used in production environments. This is only my current personal opinion about both projects.

## License & Authors

MIT (See docs/License.txt file)

The license should be the same as redis-py (https://github.com/andymccurdy/redis-py)

  • 0.1.0
    • Initial release

    • First release uploaded to pypi

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

redis-py-cluster-0.1.0.tar.gz (16.8 kB view details)

Uploaded Source

File details

Details for the file redis-py-cluster-0.1.0.tar.gz.

File metadata

File hashes

Hashes for redis-py-cluster-0.1.0.tar.gz
Algorithm Hash digest
SHA256 012c232585ce67eba4033661624689159413a8ed258aa366a24ac7584e36e7d3
MD5 e1974eab0fd8801a7f95d5c1a17596d4
BLAKE2b-256 60a753dd5e30315042644b2f653289f0ccf8ec99543fda78d4962d59506b0a61

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