Redis記憶體管理 鍵過期策略 記憶體淘汰策略

2021-09-25 07:41:33 字數 744 閱讀 2402

記憶體使用統計指標

可以參考文章:

其中需要重點關注的指標:used_memory(redis使用的記憶體總量)、used_memory_rss(系統分配的記憶體總量)、mem_fragmentation_ratio(記憶體碎片率:used_memory_rss / used_memory)

當 mem_fragmentation_ratio > 1時,多出來的部分代表被記憶體碎片消耗;當 mem_fragmentation_ratio < 1時,說明作業系統把 redis 記憶體交換到硬碟,此時 redis 效能會變得很差。

自身記憶體:

redis 空程序自身記憶體消耗,一般很少。

物件記憶體:

redis 中所有的資料都採用key-value資料型別,每次建立鍵值對時,至少需要建立兩個型別物件,key物件和value物件(底層結構體都為 redisobject ),物件記憶體大小為 sizeof(keys) + sizeof(values)。在使用時,應盡量避免使用過長的鍵。

緩衝記憶體:

緩衝記憶體由以下3部分組成:

惰性刪除(使用時真正刪除)+ 定期刪除

定期刪除原理:

執行刪除的過程中aof同步寫入del操作

通過 maxmemory-policy 配置,預設和常用lru,並非完全的lru,根據 maxmemory-samples 設定的選樣數量淘汰

Redis 鍵過期處理策略

redis可以給乙個key設定過期時間,當key過期以後,並不會馬上自動釋放。redis對於過期鍵的處理,分為被動刪除和主動刪除兩種方式。1.被動刪除 當客戶端訪問到乙個已經過期的鍵但尚未刪除,redis就會主動把它刪除。2.主動刪除 redis每秒會迴圈10次以下操作 隨機抽取20個具有過期時間的...

Redis 過期鍵刪除策略

當redis伺服器中的資料庫鍵超過過期時間,刪除策略主要為三種 惰性刪除 放任鍵過期不管,但是每次從鍵空間中獲取鍵時,都檢查取得的鍵是否過期,過期的話,刪除該鍵 如果沒有過期,就返回該鍵。定期刪除 每隔一段時間,程式就對資料庫進行一次檢查,刪除裡面的過期鍵。至於要刪除多少過期鍵,以及要檢查多少個資料...

redis過期鍵刪除策略

redis伺服器實際使用的過期鍵刪除策略有兩種 通過配合使用這兩種刪除策略,伺服器可以很好地合理使用cpu時間和避免浪費記憶體空間之間取得平衡。redis 缺省會每秒進行十次過期掃瞄,過期掃瞄不會遍歷過期字典中所有的 key,而是採用了一種簡單的貪心策略。從過期字典中隨機 20 個 key 刪除這 ...