redis過期機制和淘汰策略

2021-10-24 20:22:00 字數 621 閱讀 6575

redis的過期key刪除機制

這樣就會導致乙個問題,假設乙個key過期了,我也不去訪問。他就會一直存在記憶體當中,所以可能會導致記憶體滿掉,因此redis還引入了記憶體淘汰機制。

通過maxmemory 配置項來設定允許使用者使用的最大記憶體大小,當記憶體資料集大小達到一定的大小時,就會根據配置項配置的策略來進行資料淘汰。

策略描述

volatile-ttl

從已設定過期時間的資料集中挑選將要過期的資料淘汰

volatile-lru

從已設定過期時間的資料集中挑選最近未使用的資料淘汰

allkeys-lru

從所有資料集中挑選最近未使用的資料淘汰

volatile-random

從已設定過期時間的資料集中任意選擇資料淘汰

allkeys-random

從所有資料集中任意選擇資料進行淘汰

volatile-lfu

從已設定過期時間的資料集中挑選訪問頻率最少的鍵值對淘汰

allkeys-lfu

從所有資料集中挑選訪問頻率最少的鍵值對淘汰

noeviction

禁止驅逐資料

redis最大記憶體不足"時,資料清除策略,預設為"volatile-lru"

redis過期策略和記憶體淘汰機制

兩種方式 惰性刪除 當訪問key時,再判斷key是否過期。過期則刪除並返回null。定期刪除 周期性地隨機測試一批設定了過期時間的key並處理。過期則刪除。redis.conf配置執行週期,預設每秒10次 hz 10定期刪除演算法 redis配置hz定義了servercron任務的執行週期,預設是1...

Redis過期策略和記憶體淘汰機制

1 定時刪除 在設定過期時間的同時,設定乙個定時器,定時器的執行時間就是過期的時間點。2 惰性刪除 不管鍵是否過期,只有每次取值的時候,才檢查是否過期,過期就刪除。3 定期刪除 每隔一段時間抽取一批 key 執行刪除過期 key 操作。並且,redis 底層會通過限制刪除操作執行的時長和頻率來減少刪...

Redis 過期策略 和 淘汰策略

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