Redis的記憶體淘汰

2021-10-25 09:50:27 字數 398 閱讀 1938

redis定義了幾種策略用來處理這種情況:

noeviction(預設策略):對於寫請求不再提供服務,直接返回錯誤(del請求和部分特殊請求除外)

allkeys-lru:從所有key中使用lru演算法進行淘汰

volatile-lru:從設定了過期時間的key中使用lru演算法進行淘汰

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

volatile-random:從設定了過期時間的key中隨機淘汰

volatile-ttl:在設定了過期時間的key中,根據key的過期時間進行淘汰,越早過期的越優先被淘汰

當使用volatile-lru、volatile-random、volatile-ttl這三種策略時,如果沒有key可以被淘汰,則和noeviction一樣返回錯誤

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

給redis設定一些位元組大小去限制記憶體使用,當redis達到所設定的記憶體大小,redis將會刪除一些key,根據所制定的記憶體淘汰策略。如果redis不能刪除key根據所給的策略,或者如果當前的淘汰策略是novication,有新的key進來的時候,redis將回出錯,比如set操作 lpus...

Redis 記憶體淘汰機制

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

redis 記憶體淘汰機制

redis記憶體淘汰指的是使用者儲存的一些鍵被可以被redis主動地從例項中刪除,從而產生讀miss的情況,那麼redis為什麼要有這種功能?這就是我們需要 的設計初衷。redis最常見的兩種應用場景為快取和持久儲存,首先要明確的乙個問題是記憶體淘汰策略更適合於那種場景?是持久儲存還是快取?記憶體的...