Redis 的記憶體KEY淘汰策略

2021-10-10 19:57:49 字數 1070 閱讀 9217

策略說明優缺點

立即過期

set   test  testexpire  //建立test

expire  test   3        //設定3秒過期

優點:過期立馬釋放記憶體

缺點:每隔key都會設定定時器,消耗cpu的資源。不建議使用。

惰性過期

當訪問的時候,才會判斷是否過期

當寫的時候,如果發現記憶體用完了,才會釋放空間

優點:不會過多的消耗cpu的資源

缺點:對記憶體不是太友好

定期過期

只要乙個定時器,每隔一段時間,是否刪除設定過期時間的key

淘汰策略含義備註

volatile-lru

使用lru演算法移除key,只對設定了過期時間的key

lru  表示最近最少未被使用

allkeys-lru

使用lru演算法移除key,作用物件所有key

volatile  表示設定過期屬性的

volatile-lfu

使用lfu演算法移除key,只對設定了過期時間的key

lfu 表示最近最不經常使用,使用頻率最小

allkeys-lru

使用lfu演算法移除key ,作用物件所有key

allkeys=設定過期屬性+未設定過期屬性的

volatile-random

在過期集合key中隨機移除key,只對設定了過期時間的key

隨機allkeys-random

隨機移除key,作用物件為所有key

volarile-ttl

移除哪些ttl值最小即最近要過期的key

按照過期時間排序,最近要過期的key才刪除

noeviction

永不過期,針對寫操作,會返回錯誤資訊。

如果寫滿了,會阻塞,不允許寫入

Redis記憶體淘汰策略及Key的過期策略

volatile lru 淘汰最近最少使用的 volatile random 隨機淘汰 volatile ttl 淘汰將要到期的 allkeys random 所有key中隨機淘汰 allkeys lru 所有key中淘汰最近最少使用的 預設的淘汰策略 no enviction enviction譯...

redis記憶體淘汰策略

lru least recently used,最近很少使用 思想 越最近使用過的資料,接下來使用的機會越大,越應該保留,剔除哪些很久之前使用過的資料 新資料插入到列表頭部 每當快取命中 即快取資料被訪問 則將資料移到列表頭部 當列表滿的時候,將列表尾部的資料丟棄。lfu least frequen...

Redis記憶體淘汰策略與過期key處理策略

redis對於過期鍵有三種清除策略 1.被動刪除 當讀 寫乙個已經過期的key時,會觸發惰性刪除策略,直接刪除掉這個過期 key2.主動刪除 由於惰性刪除策略無法保證冷資料被及時刪掉,所以redis會定期主動淘汰一 批已過期的key 3.當前已用記憶體超過maxmemory限定時,觸發主動清理策略 ...