gpt4 book ai didi

Django:当数据通过管理面板更改时自动使缓存无效?

转载 作者:行者123 更新时间:2023-12-04 12:13:21 31 4
gpt4 key购买 nike

今天在 Django 问题上一卷。

缓存框架看起来非常棒,我想在整个站点范围内使用它。与其为我的 View 设置明确的到期时间,我更愿意无限期地缓存它们,并且仅在内容更改时使缓存无效/删除。梦想的场景,对吧?

有什么方法可以 Hook Django 的自动管理,以便在发生 CRUD 操作时删除相关缓存?我希望我必须以某种方式告诉管理面板哪个模型应该使哪个类无效,但原则上,这可能吗?我可以添加某种回调?任何替代方案?

谢谢!
马特

最佳答案

两部分答案:

  • 清除 CRUD 事件的缓存?像馅饼一样简单 — 使用 Django signals .
  • 只清除缓存的相关部分?这是一个真正困难的问题。从表面上看,它可能看起来很简单,但除了最微不足道的情况外,很难辨别所有依赖关系。

  • 我们通过扩展 django 缓存代码将对象类/id 信息嵌入到名称中,然后在子页面级别进行缓存,从而解决了第 2 部分。在 CRUD 事件中,我们可以通过缓存的项目名称执行简单的正则表达式并根据需要进行修剪。

    总而言之,我认为这是 Premature Optimization的又一案例。并不清楚它有什么不同。下次我会等到有一个经过验证的、可衡量的性能问题,然后再做这样的事情。

    关于Django:当数据通过管理面板更改时自动使缓存无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5842704/

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