redis(5) redis最大快取設定策略

2021-08-27 22:26:44 字數 1109 閱讀 6009

redis技術目錄

一、最大快取設定

示例:maxmemory 100mb 

單位:mb,gb。

預設為0,沒有指定最大快取,如果有新的資料新增,超過最大記憶體,則會使redis崩潰,所以一點要設定。

設定maxmemory之後,配合的要設定快取資料**策略。

二、**策略演算法設定

當maxmemory限制到達的時候,redis將採取的準確行為是由maxmemory-policy配置指令配置的。 

以下策略可用: 

(1)、noeviction:當到達記憶體限制時返回錯誤。當客戶端嘗試執行命令時會導致更多記憶體占用(大多數寫命令,除了del和一些例外)。

(2)、allkeys-lru:**最近最少使用(lru)的鍵,為新資料騰出空間。

(3)、volatile-lru:**最近最少使用(lru)的鍵,但是只**有設定過期的鍵,為新資料騰出空間。

(4)、allkeys-random:**隨機的鍵,為新資料騰出空間。

(5)、volatile-random:**隨機的鍵,但是只**有設定過期的鍵,為新資料騰出空間。

(6)、volatile-ttl:**有設定過期的鍵,嘗試先**離ttl最短時間的鍵,為新資料騰出空間。

使用策略規則:

(1)、如果資料呈現冪律分布,也就是一部分資料訪問頻率高,一部分資料訪問頻率低,則使用allkeys-lru。

(2)、如果資料呈現平等分布,也就是所有的資料訪問頻率都相同,則使用allkeys-random。

redis**演算法,實際不是嚴謹的lru演算法,而是抽樣**資料,這樣算是為了減少消耗記憶體使用,但是抽樣**的快取和全部資料**快取差異非常小,或者根本就沒有。

三、生產使用

(1)、先**好系統所需要的記憶體高峰,部署相對應記憶體的快取伺服器。

(2)、設定maxmemory和相對應的**策略演算法,設定最好為物理記憶體的3/4,或者比例更小,因為redis複製資料等其他服務時,也是需要快取的。

以防快取資料過大致使redis崩潰,造成系統出錯不可用。犧牲一部分快取資料,儲存整體系統可用性。

redis最大快取設定策略

一 最大快取設定 示例 maxmemory 100mb 單位 mb,gb。預設為0,沒有指定最大快取,如果有新的資料新增,超過最大記憶體,則會使redis崩潰,所以一點要設定。設定maxmemory之後,配合的要設定快取資料 策略。二 策略演算法設定 當maxmemory限制到達的時候,redis將...

快取 redis 快取穿透

哪一些因素 考慮使用redis,畢竟 redis 也要增加成本 1 熱點資料 2 讀的成本非常大 3 讀多寫少 4 對資料一致性要求 沒有那麼嚴格 可以出現資料與資料庫不一致 1 秒殺場景 3 物流查詢軌跡 熱點資料 啟用的資料是被快取到redis 當中 快取key 乙個時間點過期的時候,如果快取資...

關於Redis快取

業務場景 實時性要求不高的查詢 如果用redis做mysql的快取,key value中的值為乙個屬性 屬性值組成的hashmap,鍵的定義是個難點。鍵應該盡可能與mysql查詢的條件相關,請求呼叫的方法 controller裡分發 對應的查詢引數就可以唯一的確定查詢條件,如如 listusers....