Ehcache 概述、特點、架構
阿新 • • 發佈:2019-01-29
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 來實現。