Redis 刪除策略和淘汰演算法

2021-10-18 17:18:19 字數 1411 閱讀 7529

1.4 刪除策略的比較

二、資料淘汰策略

參考文章

我們可以使用ttl指令獲取資料狀態

返回 -1 :永久有效的資料

返回 -2 :已經過期的資料或被刪除的資料或未定義的資料

對於過期資料,redis 刪除這些資料時會使用相應的刪除策略。刪除策略主要有三種,分別是定時刪除、惰性刪除、定期刪除。redis 使用的是惰性刪除和定期刪除。

在記憶體占用與 cpu 占用之間尋找一種平衡,顧此失彼都會造成 redis 效能的下降,甚至引發記憶體洩漏或伺服器宕機。

redis 中有三種資料刪除策略,分別時定時刪除、惰性刪除、定期刪除

優點:節約記憶體

缺點:cpu 壓力大,會影響 redis 服務響應時間和指令吞吐量

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

說明:資料到達過期時間時先不做處理,等下次訪問該資料時:① 如果資料未過期,則返回資料;② 如果資料過期,刪除資料,返回不存在

優點:節約 cpu 效能

缺點:記憶體壓力大

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

說明:周期性地輪詢 redis 中的時效性資料,採用隨機抽取的策略,利用過期資料佔比的方式控制刪除頻率。隨機挑選 w 個 key,當刪除的 key 的數量達到 w 的 25%時,繼續刪除;否則此輪刪除終止。

特點

總結:週期性抽查儲存空間(隨機抽查、重點抽查)

定時刪除惰性刪除定期刪除

記憶體占用節約記憶體

記憶體占用嚴重

記憶體隨機定期清理

cpu 占用占用cpu資源較大

cpu占用較低

每秒花費固定cpu資源維護記憶體

特點時間換空間

空間換時間

隨機抽查、重點抽查

檢測全庫資料

放棄刪除資料

使用 info 命令輸出監控資訊,查詢快取 hit 和 miss 的次數,根據業務需求調優 redis 的配置

maxmemory-samples

maxmemory-policy

Redis 過期策略 和 淘汰策略

適用於 很多的 key 可能會到了過期時間還沒有進行刪除的情況。放任 key 過期不管,但是每次從鍵空間中獲取 key 時,都檢查取得的 key 是否過期,如果過期的話,就刪除該 key 如果沒有過期,就返回該 key 每隔一段時間程式就對資料庫進行一次檢查,刪除裡面的過期的 key 至於要刪除多少...

Redis過期鍵刪除策略及淘汰策略

redis的所有鍵都可以設定過期策略,redis的每個設定了過期時間的key都會被放在乙個獨立的字典中,用於遍歷刪除。1.先區分兩個概念,被動刪除與主動刪除 1 被動刪除 key再被操作時,redis主動檢查key是否過期,過期則刪除 優劣 對cpu友好,只有cpu在被操作時刪除,不浪費cpu時間 ...

Redis淘汰策略

將 redis 用作快取時,如果記憶體空間用滿,就會自動驅逐老的資料。maxmemory用於指定 redis 能使用的最大記憶體。既可以在redis.conf檔案中設定,也可以在執行過程中通過 config set 命令動態修改 當記憶體使用達到最大限制時,如果需要儲存新資料,根據配置的策略 pol...