java web缓存技术
生活随笔
收集整理的這篇文章主要介紹了
java web缓存技术
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
—背景—
緩存技術在計算機中有關的技術隨處可見,不管在硬件還是軟件都有著舉重輕重的位置,由此可以看到緩存技術的重要性。
—緩存算法—
當然,提到緩存不得不說緩存算法。
最不經常使用算法(LFU):這個緩存算法使用一個計數器來記錄條目被訪問的頻率。通過使用LFU緩存算法,最低訪問數的條目首先被移除。這個方法并不經常使用,因為它無法對一個擁有最初高訪問率之后長時間沒有被訪問的條目緩存負責。 最近最少使用算法(LRU):這個緩存算法將最近使用的條目存放到靠近緩存頂部的位置。當一個新條目被訪問時,LRU將它放置到緩存的頂部。當緩存達到極限時,較早之前訪問的條目將從緩存底部開始被移除。這里會使用到昂貴的算法,而且它需要記錄“年齡位”來精確顯示條目是何時被訪問的。此外,當一個LRU緩存算法刪除某個條目后,“年齡位”將隨其他條目發生改變。 自適應緩存替換算法(ARC):在IBM Almaden研究中心開發,這個緩存算法同時跟蹤記錄LFU和LRU,以及驅逐緩存條目,來獲得可用緩存的最佳使用。 最近最常使用算法(MRU):這個緩存算法最先移除最近最常使用的條目。一個MRU算法擅長處理一個條目越久,越容易被訪問的情況。—Java web緩存—
在Java中最簡單和最常見的應該就是static靜態的Map緩存方式。
—緩存技術設計思想—
典型的空間換時間。
—緩存—
? ? ? ? 緩存就是將靜態資源、文件、數據庫等會頻繁被使用到的數據或者資源存儲在系統外。一般我們操作數據庫、硬盤文件等資源,我們的做法是每次都從數據庫或者硬盤上去獲取,這樣就會速度很慢,造成性能問題。而解決這一個簡單的方法就是:把這些數據緩存到內存里面,每次操作的時候,先到內存里面找,看有沒有這些數據,如果有,那么就直接使用,如果沒有那么就獲取它,并設置到緩存中,下一次訪問的時候就可以直接從內存中獲取了。
—實現基本步驟—
(1)先到緩存里面查找所要查找的想用數據,看看是否存在需要使用的數據
(2)如果沒有找到,那么就創建一個滿足要求的數據,然后把這個數據設置回到緩存中,以備下次使用
(3)如果找到了相應的數據,或者是創建了相應的數據,那就直接使用這個數據。
—緩存存在的問題—
緩存數據存放時間問題
緩存數據和真實數據的同步問題
緩存的多線程并發的控制
總結
以上是生活随笔為你收集整理的java web缓存技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux vue node占用内存过大
- 下一篇: 缓存初解(五)---SpringMVC基