問題引入
我們知道redis的內存是有限的,但是如果當redis的內存使用超過上限,該如何定製淘汰算法?
當redis內存已經滿了,下一條數據進來該怎麼辦?
題目分析
首先我們應該先明確此題的主要考察點是redis的內存淘汰機制。我們要知道解決內存淘汰的算法都有哪些,以及redis中是如何實現的
相關知識點
內存淘汰算法主要有以下幾種
1.先進先出(FIFO)算法
First In First Out,先進先出算法,根據存儲的時間來判斷,離目前時間最遠的數據最先被淘汰。
2.最近最少使用(LRU)算法
Least Recently Uesed,最近最少使用算法,根據最近一次被訪問
LRU算法的思想是:如果一個數據在最近一段時間沒有被訪問到,那麼可以認爲在將來它被訪問的可能性也很小。因此,當空間滿時,最久沒有訪問的數據最先被置換(淘汰)。
3.最近最不經常使用(LFU)算法
Least Frequently Used,最近最不經常使用算法,根據最近一段時間被訪問的頻率