django框架使用redis存储session

日期:2018-07-02 03:08:24 章节:  django开发流程及原理

对于存储再服务器端的session,可以存储在数据库,缓存,数据库和缓存中,也可以存储在memcache、redis中。

首先安装包:pip install django-redis-session

然后在settings.py中配置

SESSION_ENGINE = 'redis_sessions.session'
SESSION_REDIS_HOST = 'localhost'
SESSION_REDIS_PORT = 6379
SESSION_REDIS_DB = 0
SESSION_REDIS_PASSWORD = ''
SESSION_REDIS_PREFIX = 'session'

然后新建一个视图(创建一个名称为demo的应用,python manage.py startapp demo)

启用redis服务。 sudo redis-server /usr/local/redis/redis.conf

def index(request):

    request.session['test']='test'

    return render(request,'demo/index.html')

写入session。

可以看到返回的cookie中有一个

sessionid=fkpp67gzd8vl7bq7xdd8v2cy6xp5k5hw

sessionid.png

然后我们打开redis-cli 客户端,查看所有的key.   keys *

keys.png

redis中已经有对应的key,说明已经存储了。如果需要获取当前session,则可以直接从redis中获取。