redis數據淘汰策略


Redis提供了5種數據淘汰策略: 

  • volatile-lru:使用LRU算法進行數據淘汰(淘汰上次使用時間最早的,且使用次數最少的key),只淘汰設定了有效期的key

  • allkeys-lru:使用LRU算法進行數據淘汰,所有的key都可以被淘汰

  • volatile-random:隨機淘汰數據,只淘汰設定了有效期的key

  • allkeys-random:隨機淘汰數據,所有的key都可以被淘汰

  • volatile-ttl:淘汰剩余有效期最短的key

        最好為Redis指定一種有效的數據淘汰策略以配合maxmemory設置,避免在內存使用滿后發生寫入失敗的情況。

        一般來說,推薦使用的策略是volatile-lru,並辨識Redis中保存的數據的重要性。對於那些重要的,絕對不能丟棄的數據(如配置類數據等),應不設置有效期,這樣Redis就永遠不會淘汰這些數據。對於那些相對不是那么重要的,並且能夠熱加載的數據(比如緩存最近登錄的用戶信息,當在Redis中找不到時,程序會去DB中讀取),可以設置上有效期,這樣在內存不夠時Redis就會淘汰這部分數據。

 

配置方法:

1.在線更新配置 /apps/svr/redis-3.2.0/bin/redis-cli -p 6921 config set maxmemory-policy volatile-lru 
2.修改配置文件 maxmemory-policy volatile-lru #默認是noeviction,即不進行數據淘汰

 

我們使用的:

# /apps/svr/redis/bin/redis-cli -p 6921 config get maxmemory-policy
1) "maxmemory-policy"
2) "noeviction"

不進行淘汰: noevition: 不會剔除任何數據,拒絕所有寫入操作並返回客戶端錯誤信息,此時,Redis只響應讀操作

掃描大key:

/apps/svr/redis-3.2.0/bin/redis-cli -h 10.10.10.10  -p 6956 --bigkeys -i 0.1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM