在redis中,redis允許使用者更改設定最大記憶體maxmemory,在每次寫入或更新等操作時候,redis會檢查使用的記憶體,當記憶體達到最大值得時候,就會進行資料淘汰策略,從而換取記憶體出來
redis資料淘汰策略有6種:
volatile-lru:從已設定過期時間的資料集(server.db[i].expires)中挑選最近最少使用的資料淘汰
volatile-ttl:從已設定過期時間的資料集(server.db[i].expires)中挑選將要過期的資料淘汰
volatile-random:從已設定過期時間的資料集(server.db[i].expires)中任意選擇資料淘汰
allkeys-lru:從資料集(server.db[i].dict)中挑選最近最少使用的資料淘汰
allkeys-random:從資料集(server.db[i].dict)中任意選擇資料淘汰
no-enviction(驅逐):禁止驅逐資料
redis 確定驅逐某個鍵值對後,會刪除這個資料並,並將這個資料變更訊息發布到本地(aof 持久化)和從機(主從連線)。
如果設定了過期時間,在達到記憶體最大的時候,建議可以使用第一種volatile-lru淘汰策略
如果沒有設定過期時間,在達到記憶體最大時候,建議使用allkeys-lru淘汰策略
使用的2種演算法: 這個部落格感覺不錯,對於我們這些新手理解起來可能比較容易!
redis資料淘汰機制
redis資料淘汰機制 概述 在 redis 中,允許使用者設定最大使用記憶體大小 server.maxmemory,在記憶體限定的情況下是很有用的。譬如,在一台 8g 機子上部署了 4 個 redis 服務點,每乙個服務點分配 1g 的記憶體大小,減少記憶體緊張的情況,由此獲取更為穩健的服務。re...
Redis 資料淘汰機制
為了更好的利用記憶體,使redis儲存的都是快取的熱點資料,redis設計了相應的記憶體淘汰機制 也叫做快取淘汰機制 通過maxmemory 配置項來設定允許使用者使用的最大記憶體大小,當記憶體資料集大小達到一定的大小時,就會根據maxmemory policy noeviction配置項配置的策略...
Redis 資料淘汰機制
為了更好的利用記憶體,使redis儲存的都是快取的熱點資料,redis設計了相應的記憶體淘汰機制 也叫做快取淘汰機制 通過maxmemory 配置項來設定允許使用者使用的最大記憶體大小,當記憶體資料集大小達到一定的大小時,就會根據maxmemory policy noeviction配置項配置的策略...