Rails.cache.clear返回nil
问题描述:
我有这样的设置 config.cache_store = :redis_store, ENV['REDIS_CACHE_URL']
Rails.cache.clear返回nil
$ redis-cli
127.0.0.1:6379> set random_key 1
OK
现在我去到控制台,并做Rails.cache.clear
返回零
而且我仍然能够访问关键random_key
在redis-cli。它没有清除缓存。
我不能读什么这里Rails.cache
回报太ruby/2.3.4/lib/ruby/gems/2.3.0/gems/railties-4.2.8/lib/rails.rb
是Rails.cache.clear应该返回true?
如果我的理解错误,有人能帮助我吗?
答
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
,它会。
谢谢,详细解释:) – gates