美文网首页
django-redis实现redis对session进行缓存

django-redis实现redis对session进行缓存

作者: warmsirius | 来源:发表于2019-08-16 19:04 被阅读0次

写在前面

django框架默认将session保存到数据库中,在高并发访问无疑会影响服务器性能,因此最好将session保存到redis中避免直接从数据库中读取session数据。

  • 本篇介绍 先将Django中的缓存设置为redis,然后将session的存储地方设置为Django的缓存中

参考博客

环境准备

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的缓存

相关文章

网友评论

      本文标题:django-redis实现redis对session进行缓存

      本文链接:https://www.haomeiwen.com/subject/qbaqsctx.html