Redis過期資料和刪除策略

2021-10-07 17:49:57 字數 589 閱讀 3058

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

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

資料到達過期時間,不做處理,等下次訪問該資料時進行處理,如未過期,返回資料,發現已過期,刪除,返回不存在

優點:節約cpu效能,發現必須刪除的時候才刪除

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

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

週期性輪詢redis庫中的時效性資料,採用隨機抽取的策略,利用過期資料占用的方式控制刪除頻度

特點:

處理redis過期資料

可以採用三種方法 定時刪除 定期刪除 惰性刪除 一 定時刪除 寫乙個定時器,將key的過期時間到達時,立刻將鍵刪除 優點 節約記憶體 缺點 增加cpu壓力,影響redis伺服器響應時間和吞吐量 二 定期刪除 activeexpirecycle 函式對每個expires 資料庫 逐一進行檢測 對每個資...

Redis 過期資料怎麼處理

在 redis 中,是可以設定過期資料的,redis 提供了兩種的方式,用於刪除過期的資料!redis 預設 100ms 隨即抽取部分設定過期時間的 key,過期了就刪除。優點是避免長時間的在掃瞄過期 key,缺點是有些過期 key 無法被刪除。不掃瞄全部 key 的原因是,當設定了過期時間的 ke...

mongodb刪除過期資料

通常,你往某乙個mongo庫中插資料,然後按日輪詢,最終這個資料會越來越多,對於不用的資料需要進行清理。這篇文章主要將如何清理過期資料。舉個例子 你只需要最近2個月的資料,比如今天是20170829,那麼60天之前的資料都可以清理掉。你可以寫乙個crontab任務,然後匯入指令碼,每天執行一次,將6...