2017-07-24 127 views
0

我有这样的设置 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?

如果我的理解错误,有人能帮助我吗?

回答

1

redis-cache将数据存储在特定名称空间下。

例如,如果您已根据Documentation配置redis-store,则缓存键将存储在cache命名空间下。这意味着,当你在Rails.cache.write("random_key", "key")的某个密钥cache:random_key将出现在Redis中。因此,当Rails.cache.clear时,只有在cache名称空间下的密钥才会被删除。

因此,如果您在Redis中手动创建random_keyRails.cache.clear将不会删除它。但是,如果您手动创建cache:random_key,它会。

+0

谢谢,详细解释:) – gates