Redis的六種淘汰策略

2021-10-25 07:16:27 字數 751 閱讀 2291

將 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...