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