緩存實(shí)現(xiàn)的層面有很多:
1、對(duì)象緩存
由ORM框架提供,透明性訪問,細(xì)顆粒度緩存數(shù)據(jù)庫查詢結(jié)果,無需業(yè)務(wù)代碼顯式編程。當(dāng)軟件結(jié)構(gòu)按照ORM框架的要求進(jìn)行針對(duì)性設(shè)計(jì),使用對(duì)象緩存將會(huì)極大降低web系統(tǒng)對(duì)于數(shù)據(jù)庫的訪問請(qǐng)求。因?yàn)轭愃艸ibernate這樣的ORM,良好的設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)和利用對(duì)象緩存,在大負(fù)載網(wǎng)站,能夠提供極高的性能。因?yàn)槭褂脤?duì)象緩存也無需顯式編程,所以適用范圍也最廣泛。
2、查詢緩存
對(duì)數(shù)據(jù)庫查詢結(jié)果行集進(jìn)行緩存,適用于一些耗時(shí),但是時(shí)效性要求比較低的場(chǎng)景。iBATIS就只能使用查詢緩存,而無對(duì)象緩存。查詢緩存和對(duì)象緩存適用的場(chǎng)景不一樣,是互為補(bǔ)充的。
3、片斷緩存
針對(duì)動(dòng)態(tài)頁面的局部片斷內(nèi)容進(jìn)行緩存,適用于一些個(gè)性化但不經(jīng)常更新的頁面(例如博客)。OSCache提供了相當(dāng)簡(jiǎn)陋的片斷緩存,而RoR則提供了相當(dāng)好的片斷緩存機(jī)制。
4、Action緩存
針對(duì)URL訪問返回的頁面結(jié)果進(jìn)行緩存,適用于粗粒度的頁面緩存,例如新聞發(fā)布。OScache提供了相當(dāng)簡(jiǎn)陋的Action緩存(通過web.xml中的配置),而RoR提供了相當(dāng)好的Action緩存。
緩存不能一概而論,以上每種緩存分別適用于各自的場(chǎng)景,緩存不同的層面。當(dāng)然你可以在應(yīng)用程序當(dāng)中把4種緩存一起用上。