java基礎--extension package guava(2) cache

來源:互聯網
上載者:User

標籤:查詢   情境   back   extension   方式   響應   java基礎   訪問   不同   

   1.為什麼使用緩衝  

      緩衝,在我們日常開發中是必不可少的一種解決效能問題的方法。簡單的說,cache 就是為了提升系統效能而開闢的一塊記憶體空間。

  緩衝的主要作用是暫時在記憶體中儲存業務系統的資料處理結果,並且等待下次訪問使用。在日常開發的很多場合,由於受限於硬碟IO的效能或者我們自身業務系統的資料處理和擷取可能非常費時,當我們發現我們的系統這個資料請求量很大的時候,頻繁的IO和頻繁的邏輯處理會導致硬碟和CPU資源的瓶頸出現。緩衝的作用就是將這些來自不易的資料儲存在記憶體中,當有其他線程或者用戶端需要查詢相同的資料資源時,直接從緩衝的記憶體塊中返回資料,這樣不但可以提高系統的回應時間,同時也可以節省對這些資料的處理流程的資源消耗,整體上來說,系統效能會有大大的提升。

  緩衝在很多系統和架構中都用廣泛的應用,例如:

  1.CPU緩衝
  2.作業系統緩衝
  3.本機快取
  4.分布式緩衝
  5.HTTP緩衝
  6.資料庫緩衝
  等等,可以說在電腦和網路領域,緩衝無處不在。可以這麼說,只要有硬體效能不對等,涉及到網路傳輸的地方都會有緩衝的身影。

  Guava Cache是一個全記憶體的本機快取實現,它提供了安全執行緒的實現機制。整體上來說Guava cache 是本機快取的不二之選,簡單易用,效能好。

  Guava Cache有兩種建立方式:

  1. cacheLoader
  2. callable callback

  通過這兩種方法建立的cache,和通常用map來緩衝的做法比,不同在於,這兩種方法都實現了一種邏輯——從緩衝中取key X的值,如果該值已經緩衝過了,則返回緩衝中的值,如果沒有緩衝過,可以通過某個方法來擷取這個值。但不同的在於cacheloader的定義比較寬泛,是針對整個cache定義的,可以認為是統一的根據key值load value的方法。而callable的方式較為靈活,允許你在get的時候指定。

2.Ehcache 與 Guava Cache 的區別

最近在做一些緩衝改造的情境,有如下一些經驗總結:

緩衝版本:

Ehcache:2.8.3
Guava:17.0

  1. Ehcache支援持久化到本地磁碟,Guava不可以;
  2. Ehcache有現成的叢集解決方案,Guava沒有。不過個人感覺比較雞肋,對JVM層級的緩衝來講太重了;
  3. Ehcache jar包龐大,Guava Cache只是Guava jar包中的工具之一,而且後者遠遠小於Ehcache;
  4. 兩種緩衝當緩衝到期或者沒有命中的時候都可以通過load介面重載資料,調用方式略有不同。兩者的主要區別是Ehcache的緩衝load的時候,允許使用者返回null,而Guava Cache則不允許返回為null,因為Guava Cache是根據value的值是否為null來判斷是否需要load,所以不允許返回為null,但是使用的時候可以使用Null 物件替換。不允許返回null是一個很好的考慮;
  5. Ehcache有記憶體佔用大小統計,Guava Cache沒有,需要自己開發。

什麼時候適用Ehcache、什麼時候適用Guava cache?

首先,兩者都是很成熟的JVM層級緩衝,所以在絕大多數情況都是可以滿足要求的。

適用Ehcache的情況

  1. 需要持久化持久化。使用持久化功能需要,緩衝穩定,以免持久化的資料不準確影響結果。
  2. 有叢集解決方案。

適用Guava cache的情況
Guava cache說簡單點就是一個支援LRU的ConCurrentHashMap,它沒有Ehcache那麼多的各種特性,只是提供了增、刪、改、查、重新整理規則和時效規則設定等最基本的元素。做一個jar包中的一個功能之一,Guava cache極度簡潔並能滿足覺大部分人的要求。

總結
Ehcache有著全面的緩衝特性,但是略重。Guava cache有最基本的緩衝特性,很輕。大家根據具體情況選擇使用。

 

java基礎--extension package guava(2) cache

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.