美文网首页
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