Redis快取鍵的過期策略

2021-09-29 18:20:09 字數 541 閱讀 6101

命令名功能

expire

將鍵的生存時間設定為ttl秒

pexpire

將鍵的生存時間設定為ttl毫秒

expireat

將鍵的生存時間設定為timestamp指定的秒數時間戳

pexpireat

將鍵的生存時間設定為timestamp指定的毫秒數時間戳

前三個命令最終都會轉換成pexpireat命令來實現,然後將鍵的過期時間以毫秒精度的unix時間戳儲存到expires字典中。

那麼過期的鍵何時會被刪除呢?

redis中有三種策略:

定時刪除對記憶體是友好的,在特定的時間會將鍵刪除,但對cpu並不友好,因為定時任務要花費大量時間去查詢事件表。與之相反,惰性刪除對cpu是友好的,但對記憶體並不友好,因為如果這個鍵沒有被訪問到的話,它將永遠不會被刪除。以上兩種刪除策略單獨使用時都有明顯缺陷,因此有了整合兩種策略的第三種策略:定期刪除。定期刪除策略會在規定的時間內,分多次遍歷伺服器中的資料庫,從資料庫的expires字典中隨機檢查一部分鍵的過期時間,並刪除其中的過期鍵。

Redis 鍵過期處理策略

redis可以給乙個key設定過期時間,當key過期以後,並不會馬上自動釋放。redis對於過期鍵的處理,分為被動刪除和主動刪除兩種方式。1.被動刪除 當客戶端訪問到乙個已經過期的鍵但尚未刪除,redis就會主動把它刪除。2.主動刪除 redis每秒會迴圈10次以下操作 隨機抽取20個具有過期時間的...

Redis 過期鍵刪除策略

當redis伺服器中的資料庫鍵超過過期時間,刪除策略主要為三種 惰性刪除 放任鍵過期不管,但是每次從鍵空間中獲取鍵時,都檢查取得的鍵是否過期,過期的話,刪除該鍵 如果沒有過期,就返回該鍵。定期刪除 每隔一段時間,程式就對資料庫進行一次檢查,刪除裡面的過期鍵。至於要刪除多少過期鍵,以及要檢查多少個資料...

redis過期鍵刪除策略

redis伺服器實際使用的過期鍵刪除策略有兩種 通過配合使用這兩種刪除策略,伺服器可以很好地合理使用cpu時間和避免浪費記憶體空間之間取得平衡。redis 缺省會每秒進行十次過期掃瞄,過期掃瞄不會遍歷過期字典中所有的 key,而是採用了一種簡單的貪心策略。從過期字典中隨機 20 個 key 刪除這 ...