天天看點

Redis過期資料和删除政策為什麼要有過期資料删除政策

目錄

  • 為什麼要有過期資料
  • 删除政策
    • 目标
    • 定時删除
    • 惰性删除
    • 定期删除

為什麼要有過期資料

因為記憶體有限,有些資料不需要一直在記憶體中,可以設定一些規則,将一些資料設定過期,在記憶體中删除,當然也不是随便删除,也要考慮到CPU的繁忙與空閑,以免出現Redis各種指令執行很多,但是正好出現大量過期資料,已造成伺服器當機

删除政策

目标

是在記憶體占用與CPU占用之間尋找一種平衡,顧此失彼都會造成redis性能下降,甚至引發伺服器當機或記憶體洩漏(CPU忙的時候,不要去打擾,閑的時候去打擾)

定時删除

建立一個定時器,當key設定有過期實踐,且過期時間到達時,由定時器任務立即執行對鍵的删除操作

優點:節約記憶體,到時就删除,快速釋放掉不必要的記憶體占用

缺點:CPU壓力很大,無論CPU此時負載量多高,均占用CPU,會影響redis伺服器相應時間和指令吞吐量

總結:用處理器性能換取存儲空間(時間換空間)

惰性删除

資料到達過期時間,不做處理,等下次通路該資料時進行處理,如未過期,傳回資料,發現已過期,删除,傳回不存在

優點:節約CPU性能,發現必須删除的時候才删除

缺點:記憶體壓力很大,出現長期占用記憶體的資料

總結:用存儲空間換取處理器性能(空間換時間)

定期删除

周期性輪詢redis庫中的時效性資料,采用随機抽取的政策,利用過期資料占用的方式控制删除頻度
Redis過期資料和删除政策為什麼要有過期資料删除政策
特點:
  • CPU性能占用設定有峰值,檢測頻度可自定義設定
  • 記憶體壓力不是很大,長期占用記憶體的冷資料會被持續清理

    總結:周期性抽查存儲空間(随機抽查,重點抽查)

繼續閱讀