Redis 過期策略

Redis 所有的數據結構都可以設置過期時間,同時Redis 是單線程的。

在同一時刻如果有太多的key過期,刪除的時間也會佔用線程的處理時間,將有可能導致線上讀寫指令出現卡頓。

 

過期集合

redis 會將每個設置了過期時間的key存儲到一個獨立的字典中,定時遍歷字典來刪除到期的key。

同時,它還採用了惰性策略來刪除過期的key,在客戶端訪問這個key時,對key進行過期校驗,如果過期則刪除。

 

定時刪除策略

Redis默認會每秒進行十次過期掃描,每次掃描從過期字典中取20個key進行刪除,如果過期的key比例超過現有key集合1/4將重複取過期key進行刪除。

同時爲了保證循環過多導致線程卡死,每次掃描過期字典最多25ms

所以這也就要求我們每次對redis的key值設置過期時間儘量分散一些

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章