1. 程式人生 > >Ehcache 概述、特點、架構

Ehcache 概述、特點、架構

Ehcache 概述

Ehcache是一個用Java實現的使用簡單、高速、執行緒安全的快取管理類庫,其提供了用記憶體、磁碟檔案儲存,以及分散式儲存等多種靈活的管理方案。
同時Ehcache作為開放原始碼專案,採用限制比較寬鬆的ApacheLicense V2.0作為授權方式,被廣泛地用於Hibernate、Spring、Cocoon等其他開源系統。
Ehcache從Hibernate發展而來,逐漸涵蓋了全部功能,是目前發展勢頭很好的一個專案。
Ehcache具有快速、簡單、低消耗、依賴性小、擴充套件性強、支援物件或序列化快取、支援快取或元素的失效、提供LRU/LFU/FIFO快取策略、支援記憶體快取及磁碟快取、採用分散式快取機制等特點。

Ehcache 特點

  • 快速,簡單。在過去眾多的測試中已經表明Ehcache是最快的Java快取之一,Ehcache的執行緒機制是為大型高併發系統設計的, 而且很多使用者都不知道他們正在使用Ehcache, 也可以看出使用Ehcache不需要什麼複雜的配置, Ehcache的API也易於使用, 很容易部署上線和執行。
  • 多種快取策略。提供LRU、LFU和FIFO快取策略。Ehcache支援基於Cache和基於 Element 的過期策略,每個Cache 的存活時間都是可以設定和控制的。Ehcache 提供了LRU 、 LFU 和 FIFO 快取淘汰演算法,在 Ehcaehe 1.2 引入了最少使用和先進先出快取淘汰算 法,構成了完整的快取淘汰演算法。
  • 快取資料有兩級。記憶體和磁碟,因此無須擔心容量問題。快取在記憶體和硬碟儲存可 以伸縮到 GB, Ehcache 為大資料儲存做過優化。在大記憶體的情況下,所有程序可以支援數 百 GB 的吞吐,在單臺虛擬機器上可以支援多快取管理器,還可以通過 Terracotta 伺服器矩陣 伸縮到數百個節點。
  • 快取資料會在虛擬機器重啟的過程中寫入磁碟。 Ehcache 是第 個引入快取資料持久化儲存的開源 Java 快取框架,快取的資料可以在機器重啟後從磁碟上重新獲得,可以根據 需要使用 cache.flush 方法將快取刷到磁碟上面,極大地方便了 Ehcache 的使用。
  • 可以通過 RMI 、可插入 API 等方式進行分散式快取。
    分散式快取的選項包括:
    通過 Terracotta 的快取叢集:快取發現是自動完成的,並且有很多選項可以用來調
    試快取行為和效能。
    使用 RMI、 JGroups 或者 JMS來冗餘快取資料:節點可以通過多播或發現者手動配。
    置。狀態更新可以通過 RMI 連線來非同步或者同步完成。
    可靠的分發:使用 TCP 的內建分發機制。
    快取 API: 支援 RESTFUL 和 SOAP 二種協議,沒有語言限制。
  • 具有快取和快取管理器的偵聽介面。
    快取管理器監聽器:允許註冊實現了 CacheManagerEventListener 介面的監聽器,方法分別是 notifyCacheAdded() 和 notifyCacheRemoved()。
    快取事件監聽器:允許註冊實現了 CacheEventListener 介面的監聽器,它提供了許 多對快取事件發生後的處理機制, notifyElementRemoved/Put/U pdated/Expired。
  • 提供 Hibernate 的快取實現。 Hibernate 預設二級快取是不啟動的,啟動二級快取通
    過採用 Ehcache 來實現。

Ehcache 架構