正确的过期片段缓存的方法

时间:2015-12-23 04:45:06

标签: ruby-on-rails ruby caching

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

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

请注意,这四个变量是字符串,而不是模型对象,所以它们在触摸时不会自动失效。

要使此缓存的每个副本到期,我是否必须为expire_fragment@country@category的可能值的cocacen生成的每个字符串调用@benchmark@status?或者expire_fragment reports_path会这样做吗?

很抱歉,API文档对此并不是很清楚,并且它不是那种容易,经过严格测试的类型。

1 个答案:

答案 0 :(得分:0)

你确实需要单独使每个片段到期 - 一般来说没有办法使一系列键过期(我认为memorystore支持regexp到期,但我不认为任何人在生产中使用它)。 / p>

您可能最好选择缓存密钥,以便在基础数据发生变化时进行更改。