在Java中,不同的類都有自己單獨的Cache機制,實現的方法也可能有所不同,文章列舉了Java中常見的各類Cache機制的實現方法,同時進行了綜合的比較。
OSCache
OSCache是個一個廣泛采用的高性能的Java EE緩存框架,OSCache能用於任何Java應用程序的普通的緩存解決方案。
OSCache有以下特點:緩存任何對象,你可以不受限制的緩存部分JSP頁面或HTTP請求,任何Java對象都可以緩存。擁有全面的API--OSCache API給你全面的程序來控制所有的OSCache特性。
永久緩存--緩存能隨意的寫入硬盤,因此允許昂貴的創建(expensive-to-create)數據來保持緩存,甚至能讓應用重啟。支持集群--集群緩存數據能被單個的進行參數配置,不需要修改代碼。緩存記錄的過期--你可以有最大限度的控制緩存對象的過期,包括可插入式的刷新策略(如果默認性能不需要時)。
Java Caching System
JSC(Java Caching System)是一個用分布式的緩存系統,是基於服務器的Java應用程序。它是通過提供管理各種動態緩存數據來加速動態web應用。JCS和其他緩存系統一樣,也是一個用於高速讀取,低速寫入的應用程序。動態內容和報表系統能夠獲得更好的性能。
如果一個網站,有重復的網站結構,使用間歇性更新方式的數據庫(而不是連續不斷的更新數據庫),被重復搜索出相同結果的,就能夠通過執行緩存方式改進其性能和伸縮性。
EHCache
EHCache是一個純Java的在進程中的緩存,它具有以下特性:快速,簡單,為Hibernate 2.1充當可插入的緩存,最小的依賴性,全面的文檔和測試。
JCache
JCache是個開源程序,正在努力成為JSR-107開源規范,JSR-107規范已經很多年沒改變了。這個版本仍然是構建在最初的功能定義上。
ShiftOne
ShiftOne Java Object Cache是一個執行一系列嚴格的對象緩存策略的Java lib,就像一個輕量級的配置緩存工作狀態的框架。
SwarmCache
SwarmCache是一個簡單且有效的分布式緩存,它使用IP multicast與同一個局域網的其他主機進行通訊,是特別為集群和數據驅動web應用程序而設計的。SwarmCache能夠讓典型的讀操作大大超過寫操作的這類應用提供更好的性能支持。 SwarmCache使用JavaGroups來管理從屬關系和分布式緩存的通訊。
TreeCache/JBossCache
JBossCache是一個復制的事務處理緩存,它允許你緩存企業級應用數據來更好的改善性能。緩存數據被自動復制,讓你輕松進行JBoss服務器之間的集群工作。JBossCache能夠通過JBoss應用服務或其他J2EE容器來運行一個MBean服務,當然,它也能獨立運行。
JBossCache包括兩個模塊:TreeCache和 TreeCacheAOP。TreeCache --是一個樹形結構復制的事務處理緩存。TreeCacheAOP --是一個“面向對象”緩存,它使用AOP來動態管理POJO(Plain Old Java Objects)
注:AOP是OOP的延續,是ASPect OrIEnted Programming的縮寫,意思是面向方面編程。
WhirlyCache
Whirlycache是一個快速的、可配置的、存在於內存中的對象的緩存。它能夠通過緩存對象來加快網站或應用程序的速度,否則就必須通過查詢數據庫或其他代價較高的處理程序來建立。