目錄
- 為什麼要有過期資料
- 删除政策
-
- 目标
- 定時删除
- 惰性删除
- 定期删除
為什麼要有過期資料
因為記憶體有限,有些資料不需要一直在記憶體中,可以設定一些規則,将一些資料設定過期,在記憶體中删除,當然也不是随便删除,也要考慮到CPU的繁忙與空閑,以免出現Redis各種指令執行很多,但是正好出現大量過期資料,已造成伺服器當機
删除政策
目标
是在記憶體占用與CPU占用之間尋找一種平衡,顧此失彼都會造成redis性能下降,甚至引發伺服器當機或記憶體洩漏(CPU忙的時候,不要去打擾,閑的時候去打擾)
定時删除
建立一個定時器,當key設定有過期實踐,且過期時間到達時,由定時器任務立即執行對鍵的删除操作
優點:節約記憶體,到時就删除,快速釋放掉不必要的記憶體占用
缺點:CPU壓力很大,無論CPU此時負載量多高,均占用CPU,會影響redis伺服器相應時間和指令吞吐量
總結:用處理器性能換取存儲空間(時間換空間)
惰性删除
資料到達過期時間,不做處理,等下次通路該資料時進行處理,如未過期,傳回資料,發現已過期,删除,傳回不存在
優點:節約CPU性能,發現必須删除的時候才删除
缺點:記憶體壓力很大,出現長期占用記憶體的資料
總結:用存儲空間換取處理器性能(空間換時間)
定期删除
周期性輪詢redis庫中的時效性資料,采用随機抽取的政策,利用過期資料占用的方式控制删除頻度特點:![]()
Redis過期資料和删除政策為什麼要有過期資料删除政策
- CPU性能占用設定有峰值,檢測頻度可自定義設定
記憶體壓力不是很大,長期占用記憶體的冷資料會被持續清理
總結:周期性抽查存儲空間(随機抽查,重點抽查)