1. OSCache簡介
OSCache是一套用Java編寫的緩存框架(或者說解決方案),它主要用于頁面緩存,Servlet緩存,或者其它任意的對(duì)象。
OSCache使用基于內(nèi)存或者磁盤的緩存策略。不同的策略有不同的適用場合:基于內(nèi)存的緩存非常快,但是不能持久化,而且不能存儲(chǔ)大量數(shù)據(jù),適合頻繁訪問的數(shù)據(jù)。基于磁盤的緩存可以分為使用文件和數(shù)據(jù)庫緩存,它的速度比內(nèi)存緩存慢,但可以被持久化,可以在服務(wù)器重啟重啟,數(shù)據(jù)庫奔潰時(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ù)緩存到磁盤上,而非全部內(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提供了一套簡單的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國際化
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關(guān)文章:
|
||
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
26 | 27 | 28 | 29 | 30 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
31 | 1 | 2 | 3 | 4 | 5 | 6 |
常用鏈接
留言簿(21)
隨筆分類
- J2EE 框架(9)
- J2EE基礎(chǔ)(4)
- J2SE(43)
- Java 工具(5)
- Oracle Concept(4)
- Oracle SQL/PLSQL(9)
- Oracle 開發(fā)(13)
- Oracle 管理(4)
- Oracle 調(diào)優(yōu)
- Oracle 錯(cuò)誤診斷
- RoR(19)
- UML(3)
- Unix / Linux(13)
- Web基礎(chǔ)(19)
- 其它技術(shù)(7)
- 感悟(3)
- 雜項(xiàng)(7)
- 架構(gòu)與性能(8)
- 模式與重構(gòu)(19)
- 灌水(8)
- 電影與音樂(16)
- 走過的路(1)
- 軟件過程與軟件方法(3)
- 陽光戶外(2)
- 項(xiàng)目管理(36)
隨筆檔案
- 2012年2月 (3)
- 2011年11月 (4)
- 2011年10月 (1)
- 2011年9月 (2)
- 2011年8月 (2)
- 2011年7月 (5)
- 2011年6月 (3)
- 2011年5月 (1)
- 2011年4月 (1)
- 2011年3月 (3)
- 2011年1月 (1)
- 2010年12月 (1)
- 2010年11月 (5)
- 2010年10月 (3)
- 2010年9月 (1)
- 2010年7月 (1)
- 2010年6月 (1)
- 2010年5月 (4)
- 2010年4月 (9)
- 2010年3月 (19)
- 2010年2月 (8)
- 2010年1月 (3)
- 2009年12月 (34)
- 2009年11月 (1)
- 2009年10月 (2)
- 2009年7月 (4)
- 2009年6月 (5)
- 2009年5月 (3)
- 2009年4月 (2)
- 2009年3月 (1)
- 2009年2月 (5)
- 2009年1月 (5)
- 2008年12月 (13)
- 2008年11月 (4)
- 2008年10月 (1)
- 2008年9月 (6)
- 2008年8月 (5)
- 2008年7月 (3)
- 2008年6月 (31)
- 2008年5月 (10)
- 2008年4月 (9)
- 2008年3月 (7)
- 2008年2月 (4)
- 2008年1月 (19)
BlogJava熱點(diǎn)博客
好友博客
搜索
最新評(píng)論

- 1.?re: 【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ)[未登錄]
- 666666666666666666666這幾天正在做個(gè)類似工程編碼出現(xiàn)錯(cuò)誤
- --李
- 2.?re: 【Java基礎(chǔ)專題】IO與文件讀寫---使用Apache commons IO簡化文件讀寫
- 不錯(cuò)
- --阿斯蘭
- 3.?re: 【Java基礎(chǔ)專題】編碼與亂碼(03)----String的toCharArray()方法
- 多謝分享
- --thx
- 4.?re: 【Java基礎(chǔ)專題】編碼與亂碼(05)---GBK與UTF-8之間的轉(zhuǎn)換
- 評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
- --karl
- 5.?re: 【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ)[未登錄]
- 謝謝,幫了我大忙!
- --小龍