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