簡單的來說,如果乙個應用中80% 的時間內都在訪問20% 的資料,那麼,這時候就應該使用快取了。
在80/20 原則生效的地方,我們都應該考慮是否可以使用快取。但即使是這樣,快取也有不同的用法,舉個例子,乙個**的首頁估計是被訪問的次數最多的,我們可以考慮給首頁做乙個頁面快取。頁面訪問最頻繁的,做快取。不同的頁面的快取策略有可能有天壤之別。
毫無疑問,幾乎所有的**的首頁都是訪問率最高的,而首頁上的資料**又是非常廣泛的,大多數來自不同的物件,而且有可能來自不同的db ,所以給首頁做快取是乙個不錯的主意,那麼主頁的快取策略是什麼樣子的呢,我認為應該是某個固定時間之內不變的,比如說2 分鐘更新一次。或者根據不同的網頁功能採取合理的策略。
在使用ehcache 的頁面快取之前,我們必須要了解ehcache 的2個概念:
(1)timetoidleseconds ,多長時間不訪問該快取,那麼ehcache 就會清除該快取。
(2)timetoliveseconds ,快取的存活時間,從開始建立的時間算起。
1、配置ehcache.xml檔案
2、在web.xml配置檔案中配置過濾器資訊
好了,快取整個頁面看上去是非常的簡單,甚至都不需要寫一行**,只需要幾行配置就行了,夠簡單吧,雖然看上去簡單,但是事實上內部實現卻不簡單哦,有興趣的話,大家可以看看******pagecachingfilter 繼承體系的源**。
快取首頁(整個頁面)示例:
01
< filter >
02
< filter-name > indexcachefilter
03
< filter-class >
04
net.sf.ehcache.constructs.web.filter.******pagecachingfilter
05
06
07
08
< filter-name > indexcachefilter
09
< url-pattern > *index.action
10
快取首頁的部分內容時,需要使用******pagefragmentcachingfilter 這個filter 。如:
01
< filter >
02
< filter-name > indexcachefilter
03
< filter-class >
04
net.sf.ehcache.constructs.web.filter.******pagefragmentcachingfilter
05
06
07
08
< filter-name > indexcachefilter
09
< url-pattern > */index_right.jsp
10
這個jsp 需要被jsp:include 到其他頁面,這樣就做到的區域性頁面的快取。這一點貌似沒有oscache 的tag 好用。
Ehcache快取配置
cache配置 name cache的唯一標識 maxelementsinmemory 記憶體中最大快取物件數。maxelementsondisk 磁碟中最大快取物件數,若是0表示無窮大。eternal element是否永久有效,一但設定了,timeout將不起作用。overflowtodisk ...
ehcache 快取使用
一 詳細配置步驟 1,新增ehcache.xml檔案 將ehcache.xml檔案新增到src路徑下面。ehcache.xml檔案內容如下 2,新增spring配置檔案 二 使用 1,定義ehcache工具方法 public class ehcache public cache getcache p...
Ehcache快取模式
ehcache快取模式 簡介 快取有多種不同的快取模式。以下是ehcache支援的快取模式 直接操作 direct manipulation 推送模式 pull through 自填充 self populating 直接操作 direct manipulation 你可以通過方法cache.put...