Infinispan是一個分布式的緩存,由JBOSS開發。支持JSR-107標準。
使用時最好與SPRING結合,用在DAO層。
以某方法參數作為KEY,返回的對象作為VALUE保存到緩存中。
ADD/EDIT/REMOVE方法被執行時則清除所有的緩存。
Infinispan的運行模式有兩種:
1、嵌入式
先啟動一個進程,再在此進程中啟動Infinispan的CACHE MANAGER。
2、CLIENT/SERVER
直接運行startserver.sh來啟動。
兩者區別
嵌入式:
1、Infinispan和啟動進程是在同一個進程里,如JBOSS中的Infinispan
2、要使用Infinispan的CACHE,必須將應用部署到此進程中,如將WAR應用部署到JBOSS中
3、如有多臺機以此模式運行,則互相可以通訊
CLIENT/SERVER:
1、Infinispan單獨一個進程
2、通過SDK,以MEMCHAED,RHQ等協議訪問CACHE
3、如有多臺機以此模式運行,互相不可以通訊
JBOSS中的INFINISPAN肯定是嵌入式,要訪問INFINISPAN的CACHE必須部署到JBOSS才能訪問,沒有遠程模式。
Infinispan中的CACHE有兩種模式:本地緩存和集群緩存。
本地緩存是單機版。
集群緩存是多機網絡版,又分為三種:
1、分布式:網絡中的每個節點只保存部份緩存條目,所有的節點合起來保存全部緩存條目
當本機無此條目時,要通過網絡去到別的機器上取
2、復制式:網絡中的每個節點都保存全部緩存條目,但緩存條目有更新時,所有節點一并更新
當本機無此條目時,不用到別的節點取,但緩存條目有更新時,所有節點都會執行更新本地緩存操作
3、無效式:網絡中的每個節點互不通訊,但緩存條目有更新時,節點收到失效通知,各自處理本機的緩存條目
編程使用方法
1、通過程序使用,即在代碼中寫cache的存取。
2、通過注釋使用,這各注釋是通過截面攔截方法方式實現,即如果在緩存中有此緩存條目,則方法不會被執行,直接返回結果。
又細分兩種:
通過SPRING實現,通過JAVA EE的CDI實現。
JBoss 系列三十一:JBoss Data Grid(Infinispan)緩存模式
JBoss 系列三十二:JBoss Data Grid(Infinispan)緩存模式示例
https://docs.jboss.org/infinispan/5.0/apidocs/org/infinispan/spring/provider/package-summary.html
Infinispan integrate with spring based application
http://timtang.me/blog/2012/11/04/infinispan-spring-based-application-integration/
Java緩存新標準(javax.cache)
http://www.importnew.com/11723.html
https://developer.jboss.org/en/infinispan/cn/content?filterID=contentstatus[published]~objecttype~objecttype[document]