【问题标题】:Correct way to expire a fragment cache使片段缓存过期的正确方法
【发布时间】:2015-12-23 16:30:58
【问题描述】:

Reports#index 的视图中,我缓存了这样的片段:

- cache("#{@country}-#{@category}-#{@benchmark}-#{@status}") do

请注意,这四个变量是字符串,而不是模型对象,因此它们不会在触摸时自动过期。

要使此缓存的每个副本过期,我是否必须为每个可以通过合并@country@category@benchmark@status 的可能值生成的字符串调用expire_fragment?或者expire_fragment reports_path 会成功吗?

很抱歉,API 文档对此并不十分清楚,而且它不是那种容易、可靠地测试的东西。

【问题讨论】:

    标签: ruby-on-rails ruby caching


    【解决方案1】:

    您确实需要单独使每个片段过期 - 通常无法使一系列密钥过期(我认为 memorystore 支持通过正则表达式过期,但我认为没有人在生产中使用它)。

    您最好选择缓存键,以便在基础数据更改时更改它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 2015-11-04
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多