“請你描述一下Redis的快取淘汰策略”
你如果你正好遇到這個問題,想好怎么回答了嗎?
關于這個問題,我把高手的回答整理到了15W字的面試檔案里面
大家可以私信留言領取,
下面看看高手的回答,
高手:
這個問題我需要從三個方面來回答,
第一個方面:
當Redis使用的記憶體達到maxmemory引數配置的閾值的時候,Redis就會根據配置的記憶體淘汰策略,
把訪問頻率不高的key從記憶體中移除,
maxmemory默認情況是當前服務器的最大記憶體,
第二個方面:
Redis默認提供了8種快取淘汰策略,這8種快取淘汰策略總的來說,我認為可以歸類成五種
- 第一種, 采用LRU策略,就是把不經常使用的key淘汰掉
- 第二種,采用LFU策略,它在LRU演算法上做了優化,增加了資料訪問次數,從而確保淘汰的是非熱點key,
- 第三種,隨機策略,也就是是隨機洗掉一些key
- 第四種,ttl策略,從設定了過期時間的key里面,挑選出過期時間最近的key進行優先淘汰
- 第五種,當記憶體不夠的時候,直接報錯,這是默認的策略,
這些策略可以在redis.conf檔案中手動配置和修改,我們可以根據快取的型別和快取使用的場景來選擇合適的淘汰策略,
最后一個方面,我們在使用快取的時候,建議是增加這些快取的過期時間,
因為我們知道這些快取大概的生命周期,從而更好的利用記憶體,
總結
Redis是一個記憶體資料庫,而記憶體又是非常寶貴的資源,
如何用有限的服務器資源來支撐更多業務,就必須要考慮到快取的淘汰演算法把一些不怎么使用快取淘汰掉,
因此,我認為這個面試題的考察方向也很好,建議大家深度學習一下,
大家記得點贊收藏加關注!!!
著作權宣告:本博客所有文章除特別宣告外,均采用 CC BY-NC-SA 4.0 許可協議,轉載請注明來自
Mic帶你學架構!
如果本篇文章對您有幫助,還請幫忙點個關注和贊,您的堅持是我不斷創作的動力,歡迎關注「跟著Mic學架構」公眾號公眾號獲取更多技術干貨!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/502824.html
標籤:其他
