1. 程式人生 > >redis lru緩存清理算法詳解和相關配置

redis lru緩存清理算法詳解和相關配置

rand add 就是 即使 oev ima 最大的 進行 時間比較

首先,需要先配置redis的conf文件,涉及到lru相關的配置一共有三個分別是:

  1. maxmemory,設置redis用來存放數據的最大的內存大小,一旦超出這個內存大小之後,就會立即使用LRU算法清理掉部分數據

  2. maxmemory-policy,可以設置內存達到最大閑置後,采取什麽策略來處理


    (1)noeviction: 如果內存使用達到了maxmemory,client還要繼續寫入數據,那麽就直接報錯給客戶端

    (2)allkeys-lru: 就是我們常說的LRU算法,移除掉最近最少使用的那些keys對應的數據,ps最長用的策略

    (3)volatile-lru: 也是采取LRU算法,但是僅僅針對那些設置了指定存活時間(TTL)的key才會清理掉

    (4)allkeys-random: 隨機選擇一些key來刪除掉

    (5)volatile-random: 隨機選擇一些設置了TTL的key來刪除掉

    (6)volatile-ttl: 移除掉部分keys,選擇那些TTL時間比較短的keys

  3. lru 采用近似值算法,從3.0開始lru算法引入了pool機制,表現可以跟真正的lru算法相當,是通過采樣之後的lru清理和傳統的全量lru略有不同。

    使用maxmemory-samples進行配置,比如5,可以設置采樣的大小,如果設置為10,那麽效果會更好,不過也會耗費更多的CPU資源


以上,就是針對redis lru緩存清理相關問題的講解。

redis lru緩存清理算法詳解和相關配置