zoukankan      html  css  js  c++  java
  • django-redis 缓存使用

    Python 使用 redis

    依赖

    pip3 install redis
    

    直接使用

    import redis
    # decode_responses=True得到的结果会自动解码(不是二进制数据)
    r = redis.Redis(host='127.0.0.1', port=6379, db=1, password=None, decode_responses=True)
    

    连接池使用

    import redis
    pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=1, max_connections=100, password=None, decode_responses=True)
    r = redis.Redis(connection_pool=pool)
    


    缓存使用

    要额外安装 django-redis

    # 1.将缓存存储位置配置到redis中:settings.py
    CACHES = {
     "default": {
         "BACKEND": "django_redis.cache.RedisCache",
         "LOCATION": "redis://127.0.0.1:6379/0",
         "OPTIONS": {
             "CLIENT_CLASS": "django_redis.client.DefaultClient",
             "CONNECTION_POOL_KWARGS": {"max_connections": 100},
             "DECODE_RESPONSES": True,
             "PASSWORD": "",
         }
     }
    }
    
    # 2.操作cache模块直接操作缓存:views.py
    from django.core.cache import cache  # 结合配置文件实现插拔式
    # 存放token,可以直接设置过期时间
    cache.set('token', 'header.payload.signature', 300)
    # 取出token
    token = cache.get('token')
    

    使用:
    (1)处理session[非必要,除非服务器空间有非常大的限制]:配置settings.py

    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    SESSION_CACHE_ALIAS = "default"
    

    (2)作为程序中数据的缓存使用

      from django.core.cache import cache
    

    缓存中存储数据

      cache.set(key, value, timeout=..)
    

    缓存中读取数据

    v = cache.get(key)
    

    导入需要的模块

     from django.core.cache import cache
     from . import models
    
     def cache_index(change=False):
         print('从redis中查询数据')
         a_list = cache.get('article_list')
         if a_list is None or change == True:
             print('去数据库中查找数据')
             a_list = models.Article.objects.all()
             print('将查询到的数据加载到缓存中')
             cache.set('article_list', a_list)
             return a_list
    
  • 相关阅读:
    树莓派3的无线设置
    Zabbix监控
    使用mutt+msmtp在Linux命令行界面下发邮件(续)
    K8S(16)集成实战-使用spinnaker进行自动化部署
    K8S(15)监控实战-ELK收集K8S内应用日志
    K8S(14)监控实战-grafana出图_alert告警
    K8S(13)监控实战-部署prometheus
    K8S(12)配置中心实战-多环境交付apollo三组件
    K8S(11)配置中心实战-单环境交付apollo三组件
    K8S(10)配置中心实战-configmap资源
  • 原文地址:https://www.cnblogs.com/kai-/p/12403263.html
Copyright © 2011-2022 走看看