將 redis 用作快取時, 如果記憶體空間用滿, 就會自動驅逐老的資料,淘汰那些老的或者不常用的部分keys,以保證新的資料寫入成功。
maxmemory配置指令
maxmemory配置指令用於配置redis儲存資料時指定限制的記憶體大小。通過redis.conf可以設定該指令,或者之後使用config set命令來進行執行時配置。
例如為了配置記憶體限制為100mb,以下的指令可以放在redis.conf檔案中。
maxmemory 100mb
設定maxmemory為0代表沒有記憶體限制。對於64位的系統這是個預設值,對於32位的系統預設記憶體限制為3gb。
當指定的記憶體限制大小達到時,需要選擇不同的行為,也就是策略。 redis可以僅僅對命令返回錯誤,這將使得記憶體被使用得更多,或者**一些舊的資料來使得新增資料時可以避免記憶體限制。
**策略
當maxmemory限制達到的時候redis會使用的行為由 redis的maxmemory-policy配置指令來進行配置。
以下的策略是可用的:
如果沒有鍵滿足**的前提條件的話,策略volatile-lru, volatile-random以及volatile-ttl就和noeviction 差不多了。
選擇正確的**策略是非常重要的,這取決於你的應用的訪問模式,不過你可以在執行時進行相關的策略調整,並且監控快取命中率和沒命中的次數,通過redisinfo命令輸出以便調優。
Redis六種淘汰策略
將 redis 用作快取時,如果記憶體空間用滿,就會自動驅逐老的資料。預設情況下 memcached 就是這種方式,大部分開發者都比較熟悉。lru是redis唯一支援的 演算法.本文詳細介紹用於限制最大記憶體使用量的 maxmemory 指令,並深入講解 redis 所使用的近似lru演算法。max...
Redis六種淘汰策略
將redis用作快取時,如果記憶體空間用滿,就會自動驅逐老的資料。預設情況下 memcached就是這就方式。lru是redis唯一支援的 演算法,本文講解限制最大記憶體使用量的maxmemory指令,並深入講解redis所使用的近似lru演算法。maxmemory用於指定redis能使用的最大記憶...
配置Redis作為快取(六種淘汰策略)
將 redis 用作快取時,如果記憶體空間用滿,就會自動驅逐老的資料。預設情況下 memcached 就是這種方式,大部分開發者都比較熟悉。lru是redis唯一支援的 演算法.本文詳細介紹用於限制最大記憶體使用量的maxmemory指令,並深入講解 redis 所使用的近似lru演算法。maxme...