溫馨提示×

Redis如何配置過期策略

小樊
34
2025-08-18 15:33:30
欄目: 云計算

Redis的過期策略主要有兩種:主動刪除和被動刪除。

  1. 主動刪除

    • Redis會周期性地隨機檢查一些設置了過期時間的key,并刪除其中已經過期的key。這個過程是由Redis的后臺線程來完成的,不會影響到Redis的正常讀寫操作。
    • 可以通過配置active-expire-effort-per-second參數來控制主動刪除的頻率。這個參數表示每秒主動刪除的key的數量。默認值是100。
  2. 被動刪除

    • 當客戶端嘗試訪問一個已經過期的key時,Redis會立即刪除這個key并返回空值。這種方式可以確保過期的key不會占用內存空間。
    • 可以通過配置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的過期策略配置方法。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女