redis(九)redis刪除策略

三種過期策略
定時刪除
含義:在設置key的過期時間的同時,爲該key創建一個定時器,讓定時器在key的過期時間來臨時,對key進行刪除
優點:保證內存被儘快釋放
缺點:
若過期key很多,刪除這些key會佔用很多的CPU時間,在CPU時間緊張的情況下,CPU不能把所有的時間用來做要緊的事兒,還需要去花時間刪除這些key
定時器的創建耗時,若爲每一個設置過期時間的key創建一個定時器(將會有大量的定時器產生),性能影響嚴重
沒人用
惰性刪除
含義:key過期的時候不刪除,每次從數據庫獲取key的時候去檢查是否過期,若過期,則刪除,返回null。
優點:刪除操作只發生在從數據庫取出key的時候發生,而且只刪除當前key,所以對CPU時間的佔用是比較少的,而且此時的刪除是已經到了非做不可的地步(如果此時還不刪除的話,我們就會獲取到了已經過期的key了)
缺點:若大量的key在超出超時時間後,很久一段時間內,都沒有被獲取過,那麼可能發生內存泄露(無用的垃圾佔用了大量的內存)
定期刪除
含義:每隔一段時間執行一次刪除過期key操作
優點:
通過限制刪除操作的時長和頻率,來減少刪除操作對CPU時間的佔用–處理"定時刪除"的缺點
定期刪除過期key–處理"惰性刪除"的缺點
缺點
在內存友好方面,不如"定時刪除"
在CPU時間友好方面,不如"惰性刪除"
難點
合理設置刪除操作的執行時長(每次刪除執行多長時間)和執行頻率(每隔多長時間做一次刪除)(這個要根據服務器運行情況來定了)

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