逐出演算法
參考
優點:節約記憶體,到時就刪除,快速釋放掉不必要的記憶體占用
缺點: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...