Redis中刪除過(guò)期key的策略是通過(guò)使用定期刪除和惰性刪除相結(jié)合的方法來(lái)實(shí)現(xiàn)的。
定期刪除:Redis默認(rèn)每秒鐘檢查一定數(shù)量的過(guò)期key,刪除其中已過(guò)期的key??梢酝ㄟ^(guò)配置hz
參數(shù)來(lái)調(diào)整檢查的頻率??梢栽趓edis.conf文件中設(shè)置hz
的值,默認(rèn)值為10,即每秒鐘檢查10個(gè)key。
惰性刪除:當(dāng)訪問(wèn)某個(gè)key時(shí),Redis會(huì)檢查該key是否過(guò)期,如果過(guò)期則立即刪除。這樣可以確保只有在需要使用某個(gè)key時(shí)才會(huì)進(jìn)行刪除操作,避免了不必要的資源浪費(fèi)。
需要注意的是,Redis并不保證過(guò)期key一定會(huì)立即被刪除,而是在訪問(wèn)key時(shí)檢查并刪除。因此,可能存在一段時(shí)間內(nèi)過(guò)期的key仍然存在于Redis中。
可以通過(guò)配置maxmemory-policy
參數(shù)來(lái)設(shè)置刪除策略。常用的策略有:
可以在redis.conf文件中通過(guò)設(shè)置maxmemory-policy
參數(shù)來(lái)選擇相應(yīng)的策略,或者通過(guò)config set
命令在運(yùn)行時(shí)動(dòng)態(tài)修改。