溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis(五):關于過期鍵(2)過期鍵的刪除

發布時間:2020-07-13 16:15:35 來源:網絡 閱讀:472 作者:linuxjavachen 欄目:數據庫

鍵雖然被設置了過期時間,但是當過期以后是如何處理的呢?通常有三種規則:

定時刪除:在設置了鍵的過期時間后,會啟動一個計時器,當鍵的計時器到期就刪除該鍵。

惰性刪除:不創建計時器,過期也不做處理,當再次讀取該鍵的時候先去去判斷是否過期,如果過期就刪除并返回空,如果沒有過期就返回值。

定期刪除:這個很好理解,過一段時間清理一次,至于是否全部清除不一定,因為如果鍵過多,整體清理肯定會消耗大量的CPU時間,所以定期清除可能是定期清除一部分,然后在一個整體的定期清除周期里完成整體清除。

策略優點缺點
定時刪除對于內存空間來講最有效,不存儲任何過期數據頻繁的刪除過期數據會占用較多的CPU時間
惰性刪除不占用過多的CPU時間數據庫會存在大量過期數據,占用內存空間
定期刪除吸取定時和惰性刪除的優點要設計一個好的刪除操作占用時長和執行頻率

Redis所使用的就是惰性刪除和定期刪除兩種策略。也就是說它會定期執行刪除過期鍵的操作,但是又不是一次遍歷所有鍵,而是定期遍歷一部分,在一個長周期內達到遍歷所有。在還沒有到達定期刪除的時間段內,使用惰性刪除,遇到過期的就刪除,沒有遇到的則保留,留給定期刪除處理。通過這種機制就在內存和CPU之間尋求了一種平衡。


定期刪除操作的周期是默認100毫秒,這個是由serverCron周期操作函數來執行的。但是每次刪除操作執行多長時間已經以及遍歷多少數據庫這個是由具體算法來決定的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女