2017-08-31 25 views
1

我们正在实现一个“反应式”缓存,它在大多数情况下始终保持每个重要对象都缓存,并且只更新/创建这些对象。我们使用jbuilder渲染大多数与https://github.com/rails/jbuilder交互的json。他们已经包含了非常直接的缓存镜像,即视图片段缓存。Ruby on Rails - 是否可以从缓存键删除“模板树摘要”?

我的问题是这样的 - 当存储缓存的对象时,我需要使用可检索的密钥,以便在任何模型更新后删除它们。起初看起来很简单......但却造成了麻烦。 Rails.cache.delete_matcher似乎没有工作,并且将正则表达式传入expire_fragment也是如此。

所以我能看到的唯一解决方案是能够从缓存键的末尾移除“模板树摘要”。

Link here

现实世界的例子将转换

的JBuilder/V3 /用户/ 38-20170809004706672937000 /表演/ 1493168-20170823184135817877000/d84abdae117cd787b8204fd744e7dc06

jbuilder/v3/users/38- 20170809004706672937000 /表演/ 1493168-20170823184135817877000

(再见d84abdae117cd787b8204fd744e7dc06)

这将使钥匙容易复制,因此删除。 这甚至可能吗?我是否错过了包含此密钥的重要性?任何帮助将非常感谢!我要死在她

+0

“模板消化该结束消化真实添加到缓存中密钥是通过获取整个模板文件的md5内容来计算的,这可以确保当您更改模板文件时,缓存将自动失效。“ - 仍然认为删除它是一个好主意? – max

+0

一个更好的主意是使用电子标签和反向代理。 – max

回答