Rails.cache.clear某些关键名称?

Shp*_*ord 63 memcached caching ruby-on-rails dalli

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

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

我正在使用dalli和memcached作为我的缓存并运行Rails 3.0.6.

San*_*ing 102

这是你可以写入缓存的方法 -

Rails.cache.write('key', 'value', :time_to_idle => 60.seconds, :timeToLive => 600.seconds)
Run Code Online (Sandbox Code Playgroud)

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

Rails.cache.delete('key')
Run Code Online (Sandbox Code Playgroud)

删除多个键 -

Rails.cache.delete_if {|k, v| k =~ 'key' }
Run Code Online (Sandbox Code Playgroud)

  • 我正在为`delete_if`提出一个'未定义的方法'错误.我正在运行Rails 3.0.6. (3认同)

Shp*_*ord 13

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

  • 那么,使用memcache时的解决方案是什么? (14认同)