gat*_*tes 3 caching ruby-on-rails
我有这个设置
config.cache_store = :redis_store, ENV['REDIS_CACHE_URL']
$ redis-cli
127.0.0.1:6379> set random_key 1
OK
Run Code Online (Sandbox Code Playgroud)
现在我转到控制台并执行Rails.cache.clear返回 nil 的操作
我仍然能够访问random_keyredis-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将数据存储在特定的命名空间下。
例如,如果您已redis-store根据Documentation进行配置,则缓存键将存储在cache命名空间下。这意味着,当您输入Rails.cache.write("random_key", "key")一个密钥时cache:random_key,Redis 中就会出现该密钥。因此,当您删除时,只会删除命名空间Rails.cache.clear下的键。cache
因此,如果您random_key在 Redis 中手动创建,Rails.cache.clear则不会删除它。但如果你手动创建cache:random_key,它就会。
| 归档时间: |
|
| 查看次数: |
5660 次 |
| 最近记录: |