缓存-Rails.cache.clear某些键名?

是否有可能以某种方式运行blog/post并且仅清除具有特定名称/字符串的键?

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

我将dalli和memcached用于我的缓存并运行Rails 3.0.6。

Shpigford asked 2019-10-08T23:08:16Z
3个解决方案
91 votes

这是您可以写入缓存的方式-

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' }
Sandip Ransing answered 2019-10-08T23:08:40Z
13 votes

要回答我自己的问题...似乎在给定我使用memcached的情况下,实际上我不能使用2560848006614615015040或2560848006614615015041,因为memcached不支持按模式(1)枚举或查询键。

Shpigford answered 2019-10-08T23:09:05Z
2 votes

您可以使用[https://github.com/Phobos98/dalli-delete-matched] gem,它为具有memcached的dalli存储添加了delete_matched方法的简单实现。

fkoessler answered 2019-10-08T23:09:30Z
translate from https://stackoverflow.com:/questions/12005412/rails-cache-clear-certain-key-names