【问题标题】:Django cache stores different key on get paramsDjango缓存在获取参数上存储不同的键
【发布时间】:2014-01-20 12:22:33
【问题描述】:

我使用 django 缓存和 django-redis-cache 作为后端。

与:

@cache_page(60*60*24)

视图装饰器。

现在我面临的问题是每个 get 请求都在 redis 中使用不同的键存储。 我必须为任何获取参数显示相同的页面。有没有办法强制缓存在服务和制作密钥时忽略获取参数。

【问题讨论】:

    标签: python django caching django-redis


    【解决方案1】:

    无论请求的查询字符串如何,当然都有“一种方法”来计算相同的缓存键,但这需要一些工作 - 您必须根据低级缓存 API 重写自己的 cache_page 实现(记录在这里https://docs.djangoproject.com/en/1.6/topics/cache/#the-low-level-cache-api)。您还可以阅读CacheMiddleware 的源代码(在此基础上构建了cache_page)。

    现在我不得不说,在为页面缓存生成缓存键时,我没有得到忽略查询字符串的意义。

    【讨论】:

    • 我实际上正在使用类似于基于 GET 参数的秘密登录,并使用它从 cron 类型的 python 脚本中预热缓存。 (每个页面加载大约需要 25 分钟)。
    猜你喜欢
    • 1970-01-01
    • 2012-02-21
    • 2018-03-09
    • 2020-03-31
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 2023-03-20
    • 2014-03-12
    相关资源
    最近更新 更多