代码之家  ›  专栏  ›  技术社区  ›  Shpigford

Rails.cache.是否清除某些密钥名称?

  •  80
  • Shpigford  · 技术社区  · 14 年前

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

    我不想清除整个缓存。。。只有带字符串的键 blog/post 以(即。 blog/post/1 , blog/post/2 )。

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

    3 回复  |  直到 14 年前
        1
  •  129
  •   Sandip Ransing    14 年前

    这就是写入缓存的方式-

    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' }
    
        2
  •  14
  •   Shpigford    14 年前

    为了回答我自己的问题。。。似乎我使用的是memcached,实际上我不能使用 delete_if 或 delete_matched 因为memcached不支持按模式枚举或查询键( 1 )。

        3
  •  3
  •   fkoessler    10 年前

    您可以使用 https://github.com/Phobos98/dalli-delete-matched 添加的简单实现的gem delete_matched 使用memcached进行dalli存储的方法。