Django 中的 数据缓存

Django 中的 数据缓存

配置

CACHES = {
    'default': {
        # Memcache缓存(python-memcached模块)
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        'LOCATION': 'D:\cache',
        
        # 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',  # 内存缓存
        # 'LOCATION': 'unique-snowflake',
        
        # 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',  # 文件缓存
        # 'LOCATION': '/var/tmp/django_cache',
        
        # 'BACKEND': 'django.core.cache.backends.db.DatabaseCache',  # 数据库缓存
        # 'LOCATION': 'my_cache_table',   # 数据库表
        
        'TIMEOUT': 300,  # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
        'OPTIONS': {
            'MAX_ENTRIES': 300,  # 最大缓存个数(默认300)
            'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
        }
    }
}

应用

  1. 全站

    MIDDLEWARE = [
            'django.middleware.cache.UpdateCacheMiddleware',
            # 其他中间件...
            'django.middleware.cache.FetchFromCacheMiddleware',
        ]
  2. 单独视图

        from django.views.decorators.cache import cache_page
    
               @cache_page(60 * 15)
               def my_view(request):
                   ...
  3. 局部模板

    {% load cache %}
    
    {% cache 5 'xxx' %}
        缓存 {{ now }}
    {% endcache 

缓存使用redis

django-redis

https://django-redis-chs.readthedocs.io/zh_CN/latest/

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

redis作为 session backend 使用配置

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

猜你喜欢

转载自www.cnblogs.com/zhang-zi-yi/p/10800408.html
今日推荐