django-redis实现redis对session进行缓存
2019-08-16 本文已影响0人
warmsirius
写在前面
django框架默认将session保存到数据库中,在高并发访问无疑会影响服务器性能,因此最好将session保存到redis中避免直接从数据库中读取session数据。
- 本篇介绍 先将Django中的缓存设置为redis,然后将session的存储地方设置为Django的缓存中
参考博客
环境准备
-
Django项目环境中安装 django-redis
pip3 install django-redis
项目配置
- 进行 CACHE 配置
# settings.py
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://your_host_ip:6379',
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "yoursecret",
},
},
}
# 可以不用下面这三个参数
REDIS_TIMEOUT=7*24*60*60
CUBES_REDIS_TIMEOUT=60*60
NEVER_REDIS_TIMEOUT=365*24*60*60
- session 用 redis存储开启方式配置
# settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎
SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
测试缓存是否成功
- 进入django的后台命令模式
python manage.py shell
- 输入如下命令测试:
from django.core.cache import cache #引入缓存模块
cache.set('v', '555', 60*60) #写入key为v,值为555的缓存,有效期30分钟
cache.has_key('v') #判断key为v是否存在
cache.get('v') #获取key为v的缓存