Redis 刪除策略與逐出演算法

2021-10-03 04:45:26 字數 1243 閱讀 5103

逐出演算法

參考

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

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

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

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

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

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

引數current_db用於記錄activeexpirecycle()進入哪個expires[*] 執行

如果activeexpirecycle()執行時間到期,下次從current_db繼續向下執行

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

特點1:cpu效能占用設定有峰值,檢測頻度可自定義設定

特點2:記憶體壓力不是很大,長期占用記憶體的冷資料會被持續清理

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

刪除策略

記憶體占用

cpu占用

特點定時刪除

節約記憶體,無占用

不分時段占用cpu資源,頻度高

拿時間換空間

惰性刪除

記憶體占用嚴重

延時執行,cpu利用率高

拿空間換時間

定期刪除

記憶體定期隨機清理

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

隨機抽查,重點抽查

redis一般採用惰性刪除和定期刪除結合的策略。

(error) oom command not allowed when used memory >

'maxmemory'

maxmemory
maxmemory-samples
maxmemory-policy
檢測全庫資料(所有資料集server.db[i].dict )

放棄資料驅逐

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

112節redis從入門到精通

Redis入門 刪除策略與逐出演算法

redis是一種記憶體級別的資料庫,所有資料均存放在記憶體中。redis中資料可分為具有時效性的資料 永久有效的資料 已經 過期的資料或被刪除的資料或未定義的資料。我們可以通過redis的ttl指令查詢資料的狀態 xx 具有時效性的資料 1 永久有效的資料 2 已經過期的資料 或 被刪除的資料 或未...

Redis刪除策略和逐出演算法

redis中的資料特徵 redis是一種記憶體級資料庫,所有資料均存放在記憶體中,記憶體中的資料可以通過ttl指令獲取其狀態 xx 具有時效性的資料 1 永久有效的資料 2 已經過期的資料 或 被刪除的資料 或 未定義的資料 資料刪除策略 1.定時刪除 2.惰性刪除 3.定期刪除 時效性資料的儲存結...

Redis快取逐出策略

把 redis 當做快取使用時,有時你可以方便的讓它在新資料時自動逐出舊資料。這一點大家都比較清楚,因為 memcached 預設也會這麼幹。redis 僅支援 lru 逐出策略。下文主要講述 redis maxmemory 指令,這個指令用於限定記憶體使用量,以及講述了redis 使用到的 lru...