Skip to content

kidosoft/django-redisdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
Jul 6, 2015
Dec 1, 2014
Jun 28, 2015
Jul 6, 2015
Jun 28, 2015
Jun 28, 2015
Jun 28, 2015
Jul 6, 2015
Jun 29, 2015
Jun 28, 2015
Jun 28, 2015
Dec 1, 2014
Dec 1, 2014
Jun 28, 2015
Mar 5, 2018
Dec 1, 2014
Jun 28, 2015
Jun 28, 2015
Jul 6, 2015
Jun 28, 2015
Jun 28, 2015

Repository files navigation

Redisdb

Wheel Status Latest Version License Build status Coverage Documetation

Django-redisdb is Redis backend for Django that allows using Redis as a cache and as a database at the same time. Django-redisdb provides backends for master/master and sharded configuration.

Installation

pip install django-redisdb

Quick usage guide

In settings.py:

CACHES = {
    'redis_ring': {
        'BACKEND': 'redisdb.backends.RedisRing',  # sharding backend
        'DB': 0,
        'LOCATION': [
            'localhost:6379',
            'localhost:6380',
        ],
    },
    'redis_copy': {
        'BACKEND': 'redisdb.backends.RedisCopy',  # copying backend
        'DB': 0,
        'LOCATION': [
            'localhost:6379',
            'localhost:6380',
        ],
    }
}

Usage:

>>> from django.core.cache import caches
>>> caches['redis_ring'].set('one_key', 123)  # set key1 only on on server
[True]
>>> caches['redis_copy'].set('other_key', 234)  # set key2 on all servers
[True, True]

With RedisRing value is set only on one node. With RedisCopy it's set on all nodes (two nodes in examle above).

Redis is much more powerfull then simple cache. It should be seen as a specialized database. With django-redisdb you can use all its power. For example you can use redis' sorted sets:

>>> caches['redis_copy'].zadd('myzset', 1, 'one')
[0, 1]
>>> caches['redis_copy'].zadd('myzset', 2, 'two')
[0, 1]
>>> caches['redis_copy'].zadd('myzset', 3, 'three')
[0, 1]
>>> caches['redis_copy'].zrange('myzset', 0, -1)
['one', 'two', 'three']
>>> caches['redis_copy'].zrange('myzset', 0, -1, withscores=True)
[('one', 1.0), ('two', 2.0), ('three', 3.0)]

Supported Django versions

django-redisdb runs on Django 1.2 to Django 1.8

Documentation

Full documentation is available at http://django-redisdb.readthedocs.org