Redis的淘汰策略與過期策略

2021-10-23 17:46:50 字數 749 閱讀 6877

目錄

淘汰策略

過期策略

比較淘汰策略與過期策略

最多使用的是volatile-lru:從過期時間中選擇最近最少未使用的資料淘汰

noeviction: 不刪除策略。當達到最大記憶體限制時, 如果需要使用更多記憶體,則直接返回錯誤資訊。(redis預設淘汰策略)

allkeys-lru: 在所有key中優先刪除最近最少使用(less recently used ,lru) 的 key。

allkeys-random: 在所有key中隨機刪除一部分 key。

volatile-lru: 在設定了超時時間(expire )的key中優先刪除最近最少使用(less recently used ,lru) 的 key。

volatile-random: 在設定了超時時間(expire)的key中隨機刪除一部分 key。

volatile-ttl: 在設定了超時時間(expire )的key中優先刪除剩餘時間(time to live,ttl) 短的key。

1.記憶體淘汰策略和記憶體過期策略互不影響

2.記憶體淘汰用來處理記憶體不足時需要申請額外空間的資料、過期策略用來處理過期的快取資料

Redis 過期策略 和 淘汰策略

適用於 很多的 key 可能會到了過期時間還沒有進行刪除的情況。放任 key 過期不管,但是每次從鍵空間中獲取 key 時,都檢查取得的 key 是否過期,如果過期的話,就刪除該 key 如果沒有過期,就返回該 key 每隔一段時間程式就對資料庫進行一次檢查,刪除裡面的過期的 key 至於要刪除多少...

redis的過期淘汰策略

被動過期 只有當訪問乙個key時才判斷是否過期,過期就進行清除。節省cpu,但是浪費記憶體 定期過期 每隔一段時間進行掃瞄,清除過期的key 對記憶體和cpu都比較友好 可是如果key沒有新增過期時間,則redis中資料會越來越多,把redis佔滿,所以需要使用淘汰策略來清理掉一些資料,保證新插入的...

Redis的 過期策略 和 淘汰策略

惰性過期 被動淘汰 定期過期 redis 中同時使用了惰性過期和定期過期兩種過期策略 redis中定期過期策略演算法大致實現 redis.config中hz定義了servercron任務的執行週期,預設為10,即cpu空閒時每秒執行10次 每次過期key清理的時間不超過cpu時間的25 即若hz 1...