gpt4 book ai didi

带有redis的Django正在缓存所有页面

转载 作者:可可西里 更新时间:2023-11-01 11:14:28 25 4
gpt4 key购买 nike

我在 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..."

我尝试在每个 View 上使用 never_cache 并且它有效,但我不认为这是一个好的解决方案。有更好的方法吗?

我的配置很简单

CACHES = {
'default':
{
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://redis_ip:redis_port',
'TIMEOUT': 60
},
}

中间件.PY

MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
'django.middleware.cache.FetchFromCacheMiddleware',
...]

感谢大家

最佳答案

从您的 MIDDLEWARE 设置中删除 UpdateCacheMiddlewareFetchFromCacheMiddleware。它们适用于 per-site caching ,因此当您拥有这些中间件时,每个页面都会被缓存。

关于带有redis的Django正在缓存所有页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56429257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com