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