是否有可能以某种方式运行Rails.cache.clear
并且仅清除具有特定名称/字符串的键?
我不想清除整个缓存...只是用钥匙串blog/post
的名称(即blog/post/1
,blog/post/2
)。
我正在使用带有memcached的dalli作为我的缓存并运行Rails 3.0.6。
Answers:
这是您可以写入缓存的方式-
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' }
Rails.cache
只是hash
..look的哈希文档,以便删除多个键:)
delete_if
。我正在运行Rails 3.0.6。
要回答我自己的问题...似乎在给定我正在使用memcached的情况下,我实际上不能使用,delete_if
或者delete_matched
因为memcached不支持按模式(1)枚举或查询键。
您可以使用https://github.com/Phobos98/dalli-delete-matched的gem,它delete_matched
为使用memcached的dalli存储添加了方法的简单实现。
blog/post
名称的键。