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 至於要刪除多少...