Redis LRU記憶體淘汰機制與過期策略

2021-10-04 19:51:30 字數 755 閱讀 5636

redis使用過期策略:惰性刪除+定期刪除缺略

定期刪除

缺點

難點

如果redis 記憶體滿了怎麼辦?

1. 增加記憶體

2. 使用記憶體淘汰策略

redis 配置檔案redis.conf 的maxmemory引數 可以去控制器記憶體大小;

如果超過了 maxmemory的設定記憶體大小,那麼淘汰策略 maxmemory-policy 引數配置預設值 noeviction;

noeviction(預設):拒絕寫操作, 不刪除鍵,只返回錯誤,  預設策略, 不建議使用;

volatile-ttl:刪除生存時間最短的乙個key;

allkeys-random:隨機刪除乙個key;

volatile-random:隨機刪除乙個設定了生存時間的key;

allkeys-lru:使用lru 演算法刪除乙個key  也就是 刪除乙個最近在最少使用的key;

volatile-lru:使用lru演算法刪乙個這設定了生存時間的key 刪除乙個設定了生存時間最近最少使用的key;

lru:最近最少使用的演算法, 也就是刪除最近最少使用的key;

記憶體淘汰機制與演算法

在本文開始之前,我們先要明白 在 redis 中,過期策略和記憶體淘汰策略兩個完全不同的概念,但很多人會把兩者搞混。首先,redis 過期策略指的是 redis 使用那種策略,來刪除已經過期的鍵值對 而 redis 記憶體淘汰機制指的是,當 redis 執行記憶體已經超過 redis 設定的最大記憶...

Redis 記憶體淘汰機制

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

redis 記憶體淘汰機制

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