redis會把設置了過期時間的key單獨放入一個字典里粒蜈,在key過期時并不會立刻刪除它。而是通過2種過期策略罐脊,來刪除過期的key定嗓。
1蜕琴、惰性刪除:客戶端訪問某個key時,redis會檢查這個key是否過期宵溅,若過期則刪除這個key凌简。
2、定期掃描:redis默認每秒執(zhí)行10次過期掃描恃逻。
掃描策略如下:
? ? 1雏搂、從過期字典中隨機選擇20個key。
? ? 2寇损、刪除這20個key中過期的key凸郑。
? ? 3、如果過期的key的比列超過25%矛市,則重復步驟1芙沥。
惰性刪除有一個弊端。若某個過期的key一直不被訪問浊吏,則會一直保存在內存中而昨。這樣的key若累計過多,對內存也是一個不小的消耗找田。