1. 程式人生 > >redis 過期處理

redis 過期處理

常見過期策略:

1.定時刪除(不建議使用)

  在一個鍵設定過期時間的同時為該鍵建立一個定時器,時間到來的時刻刪除該鍵

 優點:記憶體釋放快 ;缺點:大量鍵的定時器影響效能

2.惰性刪除

   在對鍵程序獲取或者處理的時候驗證是否過期,過期則刪除返回null

   優點:cpu佔用少;缺點:大量未過期未刪除的鍵未刪除釋放記憶體可能發生記憶體溢位

3.定期刪除

   設定定時器,到時間執行一次刪除過期鍵操作

  優點:定期刪除cpu佔用相對定時刪除少很多;缺點,記憶體方面不如定期刪除,cpu佔用方面不如惰性刪除

  難點:設定定期時間,參考邏輯和伺服器資源設定

redis 採用的方式是 惰性刪除和定期刪除的聯合方案

 惰性刪除流程:get或setnx操作時先檢查是否過期刪除

 定期刪除流程:獲取每個庫中的設定過期時間的鍵 判斷是否過期(預設是獲取20鍵驗證)

AOF持久化過期鍵處理

  記憶體持久化到AOF檔案時驗證鍵是否過期

  AOF檔案重寫時驗證是否過期,過期則刪除同時刪除檔案中的資訊

  RDB檔案恢復到記憶體中時驗證是否過期,過期則刪除同時刪除檔案中的資訊