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",
}
}
}