2017-07-24 129 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