徹底說透redis刪除策略(牛逼)

redis刪除策略:惰性刪除,定時刪除,定期刪除。

惰性刪除:每次查詢的時候就檢測當前key是否過期,如果過期了就直接刪除,並返回null值;

  1.  缺點:每次只能刪除當前查詢的過期key,不查詢的key,過期了也不會被刪除,導致冗餘內存,長期長毛;
  2. 優點:自己捎帶幹了,不用請單獨線程來批量檢測刪除,導致搶奪cpu;

定期刪除:搞一個定時任務,每次去檢測是否有過期key,然後批量刪除;

  1. 缺點:搶佔cpu資源,每次檢測範圍太大,key越多耗時越久;
  2. 優點:刪除全面,不會佔用內存;

定期刪除:比如每個1小時,定時去檢測部分key進行刪除,多次迭代,必然幹掉所有;

  1. 缺點:不夠及時,但是可以調整頻率,時長來優化;
  2. 優點:不用粗暴搶奪cpu,也減少內存冗餘;

 

總結一句話:定時刪除,頻率太高,太粗暴,一般高併發設計沒人敢用,所以redis用了定期+惰性刪除,比較溫柔;

 

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