1. OSCache簡(jiǎn)介
OSCache是一套用Java編寫的緩存框架(或者說解決方案),它主要用于頁面緩存,Servlet緩存,或者其它任意的對(duì)象。
OSCache使用基于內(nèi)存或者磁盤的緩存策略。不同的策略有不同的適用場(chǎng)合:基于內(nèi)存的緩存非常快,但是不能持久化,而且不能存儲(chǔ)大量數(shù)據(jù),適合頻繁訪問的數(shù)據(jù)。基于磁盤的緩存可以分為使用文件和數(shù)據(jù)庫(kù)緩存,它的速度比內(nèi)存緩存慢,但可以被持久化,可以在服務(wù)器重啟重啟,數(shù)據(jù)庫(kù)奔潰時(shí)仍然運(yùn)作,而且可以存儲(chǔ)較多的數(shù)據(jù)。適合于大量非頻繁訪問的數(shù)據(jù),或者復(fù)雜計(jì)算結(jié)果的緩存。
OSCache支持單獨(dú)類型的緩存,和混合使用的緩存策略
2. 基于內(nèi)存的快速緩存
a. 可存儲(chǔ)任意類型的動(dòng)態(tài)數(shù)據(jù)
b. 可以通過編碼計(jì)算指定緩存的key
c. 緩存數(shù)據(jù)存儲(chǔ)在application或者session中
3. 基于磁盤的持久化緩存
a. 基于磁盤的緩存可以應(yīng)對(duì)服務(wù)器重啟,大量數(shù)據(jù)的緩存
b. 用戶可以通過定制化PersistenceListener插件來指定想要的緩存位置
c. 同時(shí)使用內(nèi)存和磁盤緩存時(shí),推薦內(nèi)存緩存限額+無限制的磁盤緩存的策略,雙重保護(hù)
d. 內(nèi)存數(shù)據(jù)被移出內(nèi)存后,可以被繼續(xù)緩存到磁盤上。當(dāng)內(nèi)存找不到時(shí)就從磁盤緩存讀取
e. 可以設(shè)置OSCache在內(nèi)存緩存滿時(shí),才把后續(xù)數(shù)據(jù)緩存到磁盤上,而非全部?jī)?nèi)存數(shù)據(jù)
4. 性能考慮
a. 支持緩存并發(fā)請(qǐng)求
b. 當(dāng)一個(gè)請(qǐng)求往緩存中添加數(shù)據(jù)時(shí),其它訪問該緩存的請(qǐng)求將被掛起直至創(chuàng)建完成,防止重復(fù)緩存
c. 并發(fā)訪問同一個(gè)緩存數(shù)據(jù)時(shí),可以配置成等待更新后讀取或者直接返回已緩存數(shù)據(jù)的模式
5. 集群支持
a. OSCache可以被配置成集群模式,無縫地實(shí)現(xiàn)從單機(jī)緩存到分布式緩存的過渡
6. 緩存策略
a. OSCache支持多種類型的緩存添加策略:LRU,F(xiàn)IFO,無限制,自定義
b. OSCache支持多種類型的緩存過期策略:時(shí)間,cron表達(dá)式,編程計(jì)算
c. OSCache支持基于事件的觸發(fā)機(jī)制:增加,修改,刷新,移除
d. OSCache支持開辟多個(gè)緩存區(qū)域,每個(gè)區(qū)域可以有不同的緩存策略
e. OSCache的刷新不單可以作用于單個(gè)對(duì)象,還可以作用于所有和對(duì)象相關(guān)的其它緩存數(shù)據(jù)
7. JSP標(biāo)簽
a. OSCache提供了一套簡(jiǎn)單的JSP標(biāo)簽,來進(jìn)行頁面或頁面局部緩存
8. 緩存過濾器
a. OSCache利用Servlet2.3可以緩存整個(gè)HTTP響應(yīng)結(jié)果:頁面或者二進(jìn)制文件輸出(圖片、PDF)
b. OSCache對(duì)二進(jìn)制文件輸出的緩存可以大大降低由于復(fù)雜計(jì)算而帶來的時(shí)間消耗和服務(wù)器資源消耗
c. OSCache使用HTTP報(bào)頭的"Last modified”屬性來判斷是否使用緩存還是重新請(qǐng)求
9. i18n支持
a. OSCache支持i18n國(guó)際化
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2010-10-22 21:39
Paul Lin 閱讀(529)
評(píng)論(0) 編輯 收藏 所屬分類:
架構(gòu)與性能