常見過期策略:
1.定時刪除(不建議使用)
在乙個鍵設定過期時間的同時為該鍵建立乙個定時器,時間到來的時刻刪除該鍵
優點:記憶體釋放快 ;缺點:大量鍵的定時器影響效能
2.惰性刪除
在對鍵程序獲取或者處理的時候驗證是否過期,過期則刪除返回null
優點:cpu占用少;缺點:大量未過期未刪除的鍵未刪除釋放記憶體可能發生記憶體溢位
3.定期刪除
設定定時器,到時間執行一次刪除過期鍵操作
優點:定期刪除cpu占用相對定時刪除少很多;缺點,記憶體方面不如定期刪除,cpu占用方面不如惰性刪除
難點:設定定期時間,參考邏輯和伺服器資源設定
redis 採用的方式是 惰性刪除和定期刪除的聯合方案
惰性刪除流程:get或setnx操作時先檢查是否過期刪除
定期刪除流程:獲取每個庫中的設定過期時間的鍵 判斷是否過期(預設是獲取20鍵驗證)
aof持久化過期鍵處理
記憶體持久化到aof檔案時驗證鍵是否過期
aof檔案重寫時驗證是否過期,過期則刪除同時刪除檔案中的資訊
rdb檔案恢復到記憶體中時驗證是否過期,過期則刪除同時刪除檔案中的資訊
Redis時間過期處理
目的 業務邏輯為利用usertoken為key在redis中儲存,當不操作時間超過20分鐘時,清空redis,使得使用者重新登入。redis對儲存值的過期處理實際上是針對該值的鍵 key 處理的,即時間的設定也是設定key的有效時間。expires字典儲存了所有鍵的過期時間,expires也被稱為過...
Redis 鍵過期處理策略
redis可以給乙個key設定過期時間,當key過期以後,並不會馬上自動釋放。redis對於過期鍵的處理,分為被動刪除和主動刪除兩種方式。1.被動刪除 當客戶端訪問到乙個已經過期的鍵但尚未刪除,redis就會主動把它刪除。2.主動刪除 redis每秒會迴圈10次以下操作 隨機抽取20個具有過期時間的...
Redis實現系列 過期鍵處理
過期鍵處理 過期鍵的判定 通過過期字典,程式可以用以下步驟檢查乙個給定鍵是否過期 偽 描述 def is expired key 取得鍵的過期時間 expire time in ms redisdb.expires.get key 鍵沒有設定過期時間 if expire time in ms is ...