淺談Redis中緩存過期、內(nèi)存被緩存占用要怎么處理?下面本篇文章帶大家了解一下Redis中的緩存過期處理策略和內(nèi)存淘汰機(jī)制,希望對大家有所幫助!
已過期的key如何處理?
設(shè)置了expire的key緩存過期了,但是服務(wù)器的內(nèi)存還是會被占用,這是因為redis所基于的兩種刪除策略
redis有兩種策略:
-
(主動)定時刪除
- 定時隨機(jī)的檢查過期的key,如果過期則清理刪除。(每秒檢查次數(shù)在redis.conf中的hz配置)
-
(被動)惰性刪除
- 當(dāng)客戶端請求一個已經(jīng)過期的key的時候,那么redis會檢查這個key是否過期,如果過期了,則刪除,然后返回一個nil。這種策略對cpu比較友好,不會有太多的損耗,但是內(nèi)存占用會比較高。
所以,雖然key過期了,但是只要沒有被redis清理,那么其實內(nèi)存還是會被占用著的?!?/p>