django的redis会话后端
django-redis-sessions-fork的Python项目详细描述
info: | Redis Session Backend For Django |
---|
功能
- 快速NoSQL Django会话后端
- 通过TTL
- 从django.contrib.sessions 轻松迁移
- 最快的会话序列化程序
- 向后迁移到django.contrib.sessions
安装
运行pip install django-redis-sessions-fork
或者下载tarball并运行python setup.py install
将redis_sessions_fork.session设置为会话引擎,就像这样
SESSION_ENGINE='redis_sessions_fork.session'
配置
# all these options are defaults, you can skip anyoneSESSION_REDIS_HOST='127.0.0.1'SESSION_REDIS_PORT=6379SESSION_REDIS_DB=0SESSION_REDIS_PASSWORD=NoneSESSION_REDIS_PREFIX=None# if you prefer domain socket connection# you can just add this line instead of SESSION_REDIS_HOST and SESSION_REDIS_PORTSESSION_REDIS_UNIX_DOMAIN_SOCKET_PATH='/var/run/redis/redis.sock'# you can also use redis from urlSESSION_REDIS_URL='redis://127.0.0.1:6379/0'# also available setup connection via redis.ConnectionPool likeSESSION_REDIS_CONNECTION_POOL='random.app.redis_connection_pool'
如果你是一个快乐的heroku.com用户
您完全可以跳过redis配置
django-redis-sessions-fork已经为redis云设置了前缀
序列化程序的
django>;=1.5.3supports不同的会话序列化程序,例如django.contrib.sessions.serializers.PickleSerializer和django.contrib.sessions.serializers.JSONSerializer
另外,您可以使用ujson序列化程序,它比默认值更快
pip install ujson
然后
SESSION_SERIALIZER='redis_sessions_fork.serializers.UjsonSerializer'
此外,还可以配置ujson编码,如
SESSION_REDIS_JSON_ENCODING='utf8'# default is 'latin-1'
会话迁移
将redis_sessions_fork添加到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