我有这个设置
config.cache_store = :redis_store, ENV['REDIS_CACHE_URL']
$ redis-cli
127.0.0.1:6379> set random_key 1
OK
现在我转到控制台并执行返回nil的Rails.cache.clear
我仍然可以访问redis-cli中的密钥random_key
。它没有清除缓存。
我无法阅读Rails.cache
此处返回的内容ruby/2.3.4/lib/ruby/gems/2.3.0/gems/railties-4.2.8/lib/rails.rb
Rails.cache.clear应该返回true吗?
如果我的理解错了,有人可以帮助我吗?
答案 0 :(得分:2)
redis-cache
将数据存储在特定名称空间下。
例如,如果您根据Documentation配置了redis-store
,则缓存密钥将存储在cache
命名空间下。这意味着,当您Rails.cache.write("random_key", "key")
时,密钥cache:random_key
将出现在Redis中。因此,当您Rails.cache.clear
时,只会删除cache
命名空间下的键。
因此,如果您在Redis中手动创建random_key
,Rails.cache.clear
将不会将其删除。但是,如果您手动创建cache:random_key
,它将会。