是否有可能以某种方式运行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名称的键。