快取之EHCache(二)

2021-07-24 03:32:07 字數 2260 閱讀 6324

簡單的來說,如果乙個應用中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 >

04net.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 >

04net.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...