我在django-redis中使用模板缓存,它工作正常,但是,尽管我不使用装饰器(比如cache_page、cache_control等),django会自动缓存每个加载的页面。
我用redis-cli证实了这一点。这是页面加载后的keys *输出:
1) ":1:views.decorators.cache.cache_header..11786bb66822aef24b9fe0dac22e6e4e..."
2) ":1:views.decorators.cache.cache_page..GET.11786bb66822aef24b9fe0dac22e6e4e..."
3) ":1:django.contrib.sessions.cached_db8ss2k5s9jmp42cer0fs1nd..."我试着在每个视图上使用never_cache,但是我认为这不是一个好的解决方案。有更好的办法吗?
我的配置很简单
CACHES = {
'default':
{
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://redis_ip:redis_port',
'TIMEOUT': 60
},
}MIDDLEWARE.PY
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
'django.middleware.cache.FetchFromCacheMiddleware',
...]感谢所有
发布于 2019-06-03 14:52:36
从UpdateCacheMiddleware设置中删除MIDDLEWARE和FetchFromCacheMiddleware。它们是为每个站点缓存设计的,所以当您拥有这些中间件时,每个页面都会被缓存。
https://stackoverflow.com/questions/56429257
复制相似问题