【问题标题】:Clearing the cache in rails without deleting everything else清除rails中的缓存而不删除其他所有内容
【发布时间】:2015-11-26 08:21:35
【问题描述】:

我正在使用 redis 作为 rails 中的缓存存储

Rails.cache.clear 确实会清除缓存,但实际上会删除 Redis 中的所有其他内容。

有没有办法在不完全删除 redis 中其他所有内容的情况下使所有缓存键过期?

【问题讨论】:

  • 不能配置缓存使用不同的redis数据库吗?
  • 我可以而且可能应该,但我想知道是否有办法只清除缓存的项目而不是整个数据库...
  • 我不确定,但可能不是。 Rails 如何知道哪些键被缓存使用,哪些被其他程序使用?
  • 最好使用导轨在键前添加一些东西以便快速访问..

标签: ruby-on-rails ruby-on-rails-4 caching redis


【解决方案1】:

如果你已经知道钥匙,你可以这样去

# delete a single key
Rails.cache.delete(:key)

# delete many keys
Rails.cache.delete_if {|k, v| k =~ 'key' }

实际上 Rails.cache 键只是一个 {} Hash,因此您可以使用任何类型的 ruby​​.hash 方法。(希望我没有错)

【讨论】:

  • 最终这就是我所做的Rails.cache.delete_if {|k, v| k.start_with?('views')}
猜你喜欢
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 2014-06-26
  • 2019-07-17
  • 2011-02-20
  • 2021-08-09
  • 1970-01-01
  • 2010-12-08
相关资源
最近更新 更多