您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何用LinkedHashMap打造FIFO和LRU緩存系統,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
對于緩存來說,我相信很多人都不會陌生。一般的,對于常用的一些數據,基礎數據等,也或者是為了高并發,比如搶購等把熱點數據放入緩存中以實現高并發快速響應。
說到緩存,Redis、memcached 等在面試中屬于必問的知識點了。雖然這些專門的緩存系統做的很強大,看起來很復雜,但底層的原理其實很簡單。今天我們一起來通過 LinkedHashMap 來打造兩個 FIFO 和 LRU 機制的緩存系統。
FIFO 很好理解,就是 First In First Out,先入先出。就和隊列一樣,先進隊列的先出隊列。根據這個 FIFO 的這個特點,我們就可以通過 LinkedHashMap 來實現這種機制的緩存系統了。
上面幾行代碼就搞定了 FIFO 機制的緩存。測試代碼也很簡單,如下所示:
測試結果截圖如下所示:
通過上面這個測試結果,可以看出,這個緩存系統并不完美。當我更新元素后,我想讓它重新插入隊列,相當于重新入隊。因為它剛剛被更新過,說明使用頻次可能更高一些。于是 LRU,這種緩存淘汰機制就應用而生了。
LRU 就是(Least Recently Used),最近最少使用,意思就是最近讀取的數據放在最前面,最早讀取的數據放在最后面,如果這個時候有新的數據進來,當緩存空間不夠時,那么最后面存儲的數據淘汰。實現代碼如下所示:
下面我們來看看測試代碼:
運行之后的效果截圖如下所示:
以上就是如何用LinkedHashMap打造FIFO和LRU緩存系統,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。