首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django使用redis缓存所有页面。

Django使用redis缓存所有页面。
EN

Stack Overflow用户
提问于 2019-06-03 14:20:37
回答 1查看 420关注 0票数 0

我在django-redis中使用模板缓存,它工作正常,但是,尽管我不使用装饰器(比如cache_page、cache_control等),django会自动缓存每个加载的页面。

我用redis-cli证实了这一点。这是页面加载后的keys *输出:

代码语言:javascript
复制
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,但是我认为这不是一个好的解决方案。有更好的办法吗?

我的配置很简单

代码语言:javascript
复制
CACHES = {
    'default':
        {
            'BACKEND': 'django_redis.cache.RedisCache',
            'LOCATION': 'redis://redis_ip:redis_port',
            'TIMEOUT': 60
        },
}

MIDDLEWARE.PY

代码语言:javascript
复制
MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
     ...
    'django.middleware.cache.FetchFromCacheMiddleware',
    ...]

感谢所有

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-03 14:52:36

UpdateCacheMiddleware设置中删除MIDDLEWAREFetchFromCacheMiddleware。它们是为每个站点缓存设计的,所以当您拥有这些中间件时,每个页面都会被缓存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56429257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档