Redis的過期策略主要有兩種:主動刪除和被動刪除。
主動刪除:
active-expire-effort-per-second
參數來控制主動刪除的頻率。這個參數表示每秒主動刪除的key的數量。默認值是100。被動刪除:
maxmemory-policy
參數來設置被動刪除的策略。當內存達到最大值時,Redis會根據這個策略來刪除一些key??蛇x的策略包括:
noeviction
:默認策略,當內存不足以容納新寫入數據時,新寫入操作會報錯。一般用在內存不能為后續寫入操作擴容的場景。allkeys-lru
:從所有key中使用LRU(最近最少使用)算法進行淘汰。volatile-lru
:從已設置過期時間的key中使用LRU算法進行淘汰。allkeys-random
:從所有key中隨機淘汰數據。volatile-random
:從已設置過期時間的key中隨機淘汰數據。volatile-ttl
:從已設置過期時間的key中淘汰剩余生存時間(TTL)最短的key。配置示例:
# 設置主動刪除的頻率
active-expire-effort-per-second 50
# 設置內存達到最大值時的刪除策略
maxmemory-policy volatile-lru
注意,這些配置需要在Redis啟動前或者運行時通過CONFIG SET
命令來設置。例如:
CONFIG SET active-expire-effort-per-second 50
CONFIG SET maxmemory-policy volatile-lru
另外,如果你想要為特定的key設置過期時間,可以使用EXPIRE
命令或者SETEX
命令。例如:
EXPIRE key 60 # 設置key在60秒后過期
SETEX key 60 value # 設置key在60秒后過期,并設置key的值為value
以上就是Redis的過期策略配置方法。