緩存淘汰策略:
背景:
當Redis內存超出物理內存限制時,內存的數據會開始和磁盤產生頻繁的交換(swap),導致Redis的性能急劇下降,造成redis服務的不可用。
爲了限制最大使用內存,Redis提供了配置參數maxmemory來限制內存的最大使用容量。
當實際內存超出maxmemory時,redis根據不同的緩存淘汰策略(maxmemory-policy)來對內存進行回收。
緩存淘汰策略:
永不回收策略(默認):保證已有的數據不丟失。
noeviction # 所有的key都不會被刪除,此時redis不處理寫請求,但是讀請求、DEL請求依然會處理。這樣可以保證數據不丟失,是默認的淘汰策略。
volatile策略:只會對帶過期時間的key進行淘汰。
volatile-lru # 嘗試淘汰設置了過期時間的key,最少使用的key優先被淘汰。
volatile-ttl # 嘗試淘汰設置了過期時間的key,key的剩餘壽命的值ttl越小越優先被淘汰。
volatile-random # 嘗試淘汰設置了過期時間的key,key隨機選擇。
allkeys策略:對所有的 key 進行淘汰
allkeys-lru # 最少使用的key優先被淘汰。
allkeys-random # 隨機淘汰所有的key。