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