是否有可能以某种方式运行 Rails.cache.clear并且只清除具有某个名称/字符串的键?
Rails.cache.clear
我不想清除整个缓存... 只是键与字符串 blog/post的名称(即 blog/post/1,blog/post/2)。
blog/post
blog/post/1
blog/post/2
我使用 Dalli和 memcached 作为缓存,并运行 Rails 3.0.6。
这就是写入 cache-的方式
Rails.cache.write('key', 'value', :time_to_idle => 60.seconds, :timeToLive => 600.seconds)
为了从缓存中删除,可以使用 delete操作-
delete
Rails.cache.delete('key')
删除多个键-
Rails.cache.delete_if {|k, v| k =~ 'key' }
为了回答我自己的问题... ... 似乎由于我使用 memcached,我实际上不能使用 delete_if或 delete_matched,因为 memcached 不支持按模式枚举或查询键(1)。
delete_if
delete_matched
您可以使用 https://github.com/Phobos98/dalli-delete-matched gem,它为 dalli store 和 memcached 添加了一个简单的 delete_matched方法实现。