天天看點

Redis學習筆記三:緩存過期政策

redis中設定了expire的key并不會在過期時馬上删除,而是基于以下兩種政策進行清理:

1.(主動)定時删除:定時随機檢查部分key,如果過期則删除(redis.conf中可以配置每秒檢查的key數量)

2.(被動)惰性删除:已經過期的key在被用戶端請求的時候才會觸發删除,同時傳回nil,惰性删除不需要定期檢查key的過期狀态,對cpu資源消耗比較小,但是會造成過期key删除不及時,是以占用記憶體較多

如果記憶體達到了配置中設定的maxmemory,則會觸發redis的緩存淘汰機制

noeviction:緩存不會淘汰,設定新值時傳回用戶端一個錯誤

allkeys-lru:對所有key使用lru算法,删除最近最少用到的key

allkeys-random:所有key随機删除

volatile-lru:對設定了expire過期時間的key使用lru算法進行清理

volatile-random:對設定了expire過期時間的key随機清理

volatile-ttl:對設定了expire過期時間的key删除快要過期的