Rails Cache 清除某些密钥名?

是否有可能以某种方式运行 Rails.cache.clear并且只清除具有某个名称/字符串的键?

我不想清除整个缓存... 只是键与字符串 blog/post的名称(即 blog/post/1blog/post/2)。

我使用 Dalli和 memcached 作为缓存,并运行 Rails 3.0.6。

62571 次浏览

这就是写入 cache-的方式

Rails.cache.write('key', 'value', :time_to_idle => 60.seconds, :timeToLive => 600.seconds)

为了从缓存中删除,可以使用 delete操作-

Rails.cache.delete('key')

删除多个键-

Rails.cache.delete_if {|k, v| k =~ 'key' }

为了回答我自己的问题... ... 似乎由于我使用 memcached,我实际上不能使用 delete_ifdelete_matched,因为 memcached 不支持按模式枚举或查询键(1)。

您可以使用 https://github.com/Phobos98/dalli-delete-matched gem,它为 dalli store 和 memcached 添加了一个简单的 delete_matched方法实现。