Rails / Dalli:来自另一个命名空间的过期片段

Rails / Dalli: expire fragment from another namespace

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

我时不时地想使管理应用程序中 "users" 命名空间中的一些片段过期。

注意:我不是 caching/expiring 根据我在此处找到的其他几个 questions/answers 采取的行动。我想让 "abcde" 等键过期。我缓存了各种各样的东西,AR 结果,JSON,等等。

已经尝试过:

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

摘要已关闭。

我该怎么做?

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

我认为你最好的选择是为你的替代命名空间实例化一个单独的 dalli 客户端实例来删除密钥。