Django缓存机制

Django缓存机制
    三个粒度:
    1 全站缓存  settings.py 全局配置文件
        用中间件:
        MIDDLEWARE = [
            # 'django.middleware.cache.UpdateCacheMiddleware',
            'django.middleware.security.SecurityMiddleware',
            。。。。。。
            # 'django.middleware.cache.FetchFromCacheMiddleware'

            ]
        # CACHE_MIDDLEWARE_SECONDS=10
    2 单视图: 视图层
        用装饰器 FBV
        from django.views.decorators.cache import cache_page
        # @cache_page(24*60*60)
    3 局部页面: 模板层:html文件
        {% load cache %}
        {% cache 5 'test' %}   两个参数:时间,唯一标识
        {{ ctime }}
        {% endcache %}

        
    Django6种缓存的配置 一般用的最多的是redis或者内存
    settings配置:
    #内存:
    CACHES = {
     'default': {
      'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',  # 指定缓存使用的引擎
      'LOCATION': 'unique-snowflake',         # 写在内存中的变量的唯一值 
      'TIMEOUT':300,             # 缓存超时时间(默认为300秒,None表示永不过期)
      'OPTIONS':{
       'MAX_ENTRIES': 300,           # 最大缓存记录的数量(默认300)
       'CULL_FREQUENCY': 3,          # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      }  
     }
    }
    
    # redis配置
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "CONNECTION_POOL_KWARGS": {"max_connections": 100}
                # "PASSWORD": "123",
            }
        }
    }
原文地址:https://www.cnblogs.com/xujinjin18/p/9847020.html