Redis的記憶體管理 記憶體淘汰

2021-10-01 19:07:00 字數 645 閱讀 3822

給redis設定一些位元組大小去限制記憶體使用,當redis達到所設定的記憶體大小,redis將會刪除一些key,根據所制定的記憶體淘汰策略。

如果redis不能刪除key根據所給的策略,或者如果當前的淘汰策略是novication,有新的key進來的時候,redis將回出錯,比如set操作 lpush 等等。 只能執行get操作。簡而言之:就是當redis把記憶體用完時,只能讀取裡面的資料不能寫入了,寫入將會收到錯誤。

當redis使用lru 、lfu 快取 是行而有效的。他們用完會淘汰部分key。

警告:

maxmemory 2048m
定義當redis達到所設定的最大記憶體,redis將會如何選擇要淘汰的key

可選的有8中:

lru least rescently used 最近最少使用

lfu least frequently used 最少使用

redis 預設的淘汰策略時

maxmemory-policy noeviction
調優

在《redis 開發與運維》中說如果要設定記憶體的大小 maxmemory > usedmemory 就是讓避免頻繁的記憶體溢位,而去**記憶體。

關於lru 跟lfu

Redis的記憶體淘汰

redis定義了幾種策略用來處理這種情況 noeviction 預設策略 對於寫請求不再提供服務,直接返回錯誤 del請求和部分特殊請求除外 allkeys lru 從所有key中使用lru演算法進行淘汰 volatile lru 從設定了過期時間的key中使用lru演算法進行淘汰 allkeys ...

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

記憶體使用統計指標 可以參考文章 其中需要重點關注的指標 used memory redis使用的記憶體總量 used memory rss 系統分配的記憶體總量 mem fragmentation ratio 記憶體碎片率 used memory rss used memory 當 mem fra...

Redis 記憶體淘汰機制

摘要redis是一款優秀的 開源的記憶體資料庫,我在閱讀redis原始碼實現的過程中,時時刻刻能感受到redis作者為更好地使用記憶體而費盡各種心思,例如最明顯的是對於同一種資料結構在不同應用場景下提供了基於不同底層編碼的實現 如壓縮列表 跳躍表等 今天我們暫時放下對redis不同資料結構的 來一起...