info: | Redis Session Backend For Django |
---|
- Fast NoSQL Django sessions backend
- Invalidation via TTL
- Easy migrations from
django.contrib.sessions
- Fastest session serializers
- Backward migrations to
django.contrib.sessions
run pip install django-redis-sessions-fork
or alternatively download the tarball and run python setup.py install
set redis_sessions_fork.session
as your session engine, like so
SESSION_ENGINE = 'redis_sessions_fork.session'
# all these options are defaults, you can skip anyone
SESSION_REDIS_HOST = '127.0.0.1'
SESSION_REDIS_PORT = 6379
SESSION_REDIS_DB = 0
SESSION_REDIS_PASSWORD = None
SESSION_REDIS_PREFIX = None
# if you prefer domain socket connection
# you can just add this line instead of SESSION_REDIS_HOST and SESSION_REDIS_PORT
SESSION_REDIS_UNIX_DOMAIN_SOCKET_PATH = '/var/run/redis/redis.sock'
# you can also use redis from url
SESSION_REDIS_URL = 'redis://127.0.0.1:6379/0'
# also available setup connection via redis.ConnectionPool like
SESSION_REDIS_CONNECTION_POOL = 'random.app.redis_connection_pool'
if you one of happy heroku.com users
you can skip redis configuration at all
django-redis-sessions-fork
already have prefiguration for redis clouds
Django>=1.5.3 supports different session serializers, such as django.contrib.sessions.serializers.PickleSerializer
and django.contrib.sessions.serializers.JSONSerializer
alternative you can use ujson serializer, which is more faster then default
pip install ujson
then
SESSION_SERIALIZER = 'redis_sessions_fork.serializers.UjsonSerializer'
in addition it is possible to configure ujson encoding, like
SESSION_REDIS_JSON_ENCODING = 'utf8' # default is 'latin-1'
add redis_sessions_fork
to your INSTALLED_APPS
# copy orm sessions to redis
python manage.py migrate_sessions_to_redis
# copy redis sessions to orm
python manage.py migrate_sessions_to_orm
# flush redis sessions
python manage.py flush_redis_sessions
# flush orm sessions
python manage.py flush_orm_sessions
pip install tox
tox