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

2021-10-09 09:19:09 字數 793 閱讀 4341

volatile-lru: 淘汰最近最少使用的

volatile-random: 隨機淘汰

volatile-ttl: 淘汰將要到期的

allkeys-random: 所有key中隨機淘汰

allkeys-lru: 所有key中淘汰最近最少使用的

預設的淘汰策略:

no-enviction: enviction譯為嫉妒???? no? 不嫉妒? 啥子意思哦

新進來請求記憶體的直接報錯.

定時刪除:

新增快取的時候設定了key的超時時間, 到點下班

優點: 節省了很多記憶體空間, 給要加班的同事提供更多的空間

缺點: 同一時間過多的key到期, 會占用過多的cpu資源處理過期的key, 影響效率. 地鐵擠得很, 還排隊

惰性刪除:

key已經過了超時時間, 當訪問那個key的時候再去刪除, 返回null, 18:01了要我加班, 誰知道我18:00就溜了

優點: 不會同一時間占用過多cpu資源, 需要刪除時再操作, 要你加班的時候再加班, 別沒事找事

缺點: 可能會導致過多的快取沒被刪除, 導致記憶體洩露. 累計的工作太多, 出來混的...

定期刪除;

指定乙個策略, 定期刪除redis中過期的key

優點: 通過制定刪除的時長和頻率, 減少記憶體占用和同一時間下cup資源占用. 自己得把控加班時長和頻率

缺點: 記憶體占用友好度不如定時刪除, cup占用友好度不如惰性刪除. ----別跟我整那些花裡胡哨的, 不加班是最好的選擇 !!!

Redis 的記憶體KEY淘汰策略

策略說明優缺點 立即過期 set test testexpire 建立test expire test 3 設定3秒過期 優點 過期立馬釋放記憶體 缺點 每隔key都會設定定時器,消耗cpu的資源。不建議使用。惰性過期 當訪問的時候,才會判斷是否過期 當寫的時候,如果發現記憶體用完了,才會釋放空間 ...

redis記憶體淘汰策略

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

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

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