一、最大快取設定
示例: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(5) redis最大快取設定策略
redis技術目錄 一 最大快取設定 示例 maxmemory 100mb 單位 mb,gb。預設為0,沒有指定最大快取,如果有新的資料新增,超過最大記憶體,則會使redis崩潰,所以一點要設定。設定maxmemory之後,配合的要設定快取資料 策略。二 策略演算法設定 當maxmemory限制到達...
Redis快取策略
redis快取一般使用cache aside pattern原則。什麼是 cache aside pattern cache aside pattern即為旁路快取方案的經驗實踐,分為讀實踐和寫實踐。那麼運算元據的時候先操作快取還是先運算元據庫?1.讀請求 先從快取中讀取所需資料,如果沒有則從資料庫...
Redis更新快取策略
1 快取 失效 客戶端請求資料先從快取中查詢,如果沒有再查詢資料庫,最後將資料放入快取 2 快取 命中 客戶端從快取中直接取到資料,返回結果 3 快取 更新 客戶端寫入資料到資料庫,成功之後,讓快取失效 下次請求時從快取中拿不到,則查詢資料庫,再放入快取 4 為什麼不採取更新後刪除快取策略?防止併發...