Rails.cache.clear返回nil

时间:2017-07-24 11:58:50

标签: ruby-on-rails caching

我有这个设置 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吗?

如果我的理解错了,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

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,它将会。