Skip to content
Session backend for Django that stores sessions in a Redis database
Branch: master
Clone or download
Latest commit 260b9f3 Sep 19, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example Dict config bug fixes, related to #48 Sep 16, 2017
redis_sessions
tests Dict config bug fixes, related to #48 Sep 16, 2017
.gitignore
.travis.yml
AUTHORS
CHANGELOG.md
LICENSE.txt
MANIFEST.in
Makefile
README.rst
dev_requirements.txt
setup.py

README.rst

django-redis-sessions

Redis database backend for your sessions

Build Status

Installation

  • Run pip install django-redis-sessions or alternatively download the tarball and run python setup.py install,

For Django < 1.4 run pip install django-redis-sessions==0.3

  • Set redis_sessions.session as your session engine, like so:
SESSION_ENGINE = 'redis_sessions.session'

Available Settings

SESSION_REDIS = {
    'host': 'localhost',
    'port': 6379,
    'db': 0,
    'password': 'password',
    'prefix': 'session',
    'socket_timeout': 1,
    'retry_on_timeout': False
    }

If you prefer domain socket connection, you can just add this line instead of HOST and PORT.

SESSION_REDIS = {
    'unix_domain_socket_path': '/var/run/redis/redis.sock',
    'db': 0,
    'password': 'password',
    'prefix': 'session',
    'socket_timeout': 1,
    'retry_on_timeout': False
}

Redis Sentinel

SESSION_REDIS_SENTINEL_LIST = [(host, port), (host, port), (host, port)]
SESSION_REDIS_SENTINEL_MASTER_ALIAS = 'sentinel-master'

Redis Pool (Horizontal partitioning)

Splits sessions between Redis instances based on the session key. You can configure the connection type for each Redis instance in the pool (host/port, unix socket, redis url).

SESSION_REDIS = {
    'prefix': 'session',
    'socket_timeout': 1
    'retry_on_timeout': False,
    'pool': [{
        'host': 'localhost3',
        'port': 6379,
        'db': 0,
        'password': None,
        'unix_domain_socket_path': None,
        'url': None,
        'weight': 1
    },
    {
        'host': 'localhost2',
        'port': 6379,
        'db': 0,
        'password': None,
        'unix_domain_socket_path': None,
        'url': None,
        'weight': 1
    },
    {
        'host': 'localhost1',
        'port': 6379,
        'db': 0,
        'password': None,
        'unix_domain_socket_path': None,
        'url': None,
        'weight': 1
    }]
}

Tests

$ pip install -r dev_requirements.txt
# Make sure you have redis running on localhost:6379
$ nosetests -v

Changelog

You can’t perform that action at this time.