Rails / Dalli:从另一个命名空间中过期片段

时间:2017-11-14 17:07:15

标签: ruby-on-rails memcached dalli

我有两个应用程序连接到不同名称空间的memcached服务器,例如,我们将它们称为" admin"和"用户"。

每隔一段时间我就想在"用户"中过期一些片段。来自管理应用程序的命名空间。

注意:根据我在此处找到的其他几个问题/答案,我没有缓存/过期操作。我想过期等#34; abcde"等密钥。我缓存了各种各样的东西,AR结果,JSON等等。

已经尝试过类似的事情:

Rails.cache.delete("abcd")
Rails.cache.delete("users/abcd")
Rails.cache.delete("/users/abcd")

摘要已关闭。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您的rails缓存配置了命名空间,则该命名空间将自动添加到缓存键之前。因此,当您Rails.cache.write("FOO", "BAR")时,密钥实际上是$NAMESPACE:FOO。键只是字符串,无法像文件系统或任何花哨的东西(AFAIK)一样导航。

我认为您最好的选择是为您的备用命名空间实例化dalli客户端的单独实例以删除密钥。