Redis的淘汰策略可以通過以下幾種方式進行配置:
maxmemory-policy
:在Redis的配置文件中,可以通過設置maxmemory-policy
參數來指定淘汰策略。可選的值有:
volatile-lru
:在設置了過期時間的key中,優先刪除最近最少使用的key。allkeys-lru
:不考慮過期時間,優先刪除最近最少使用的key。volatile-random
:在設置了過期時間的key中,隨機刪除一個key。allkeys-random
:不考慮過期時間,隨機刪除一個key。volatile-ttl
:在設置了過期時間的key中,優先刪除時間最早的key。noeviction
:不進行淘汰策略,當內存不足時,所有寫入操作都會報錯。例如:maxmemory-policy allkeys-lru
maxmemory-samples
:在Redis的配置文件中,可以通過設置maxmemory-samples
參數來指定淘汰策略的采樣數量。默認值為5,表示隨機選取5個key進行比較,選擇淘汰其中最久未使用的key。可以根據實際情況調整該值。
例如:maxmemory-samples 10
maxmemory
:在Redis的配置文件中,可以通過設置maxmemory
參數來指定Redis服務器最大的內存限制。當達到這個限制時,Redis會根據淘汰策略進行數據的淘汰。
例如:maxmemory 100mb
需要注意的是,在Redis的淘汰策略中,volatile-lru
、volatile-random
和volatile-ttl
這三種策略只會對設置了過期時間的key進行淘汰,而allkeys-lru
和allkeys-random
則會對所有的key進行淘汰。