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