ehcache緩存頁(yè)面

ehcache緩存頁(yè)面

ID:38170480

大?。?7.00 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-05-24

ehcache緩存頁(yè)面_第1頁(yè)
ehcache緩存頁(yè)面_第2頁(yè)
ehcache緩存頁(yè)面_第3頁(yè)
資源描述:

《ehcache緩存頁(yè)面》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、/***作者:張榮華*日期:2007-9-26**/關(guān)于緩存的話題,在壇子里已經(jīng)有很多討論,簡(jiǎn)單的來(lái)說(shuō),如果一個(gè)應(yīng)用中80%的時(shí)間內(nèi)都在訪問(wèn)20%的數(shù)據(jù),那么,這時(shí)候就應(yīng)該使用緩存了。這個(gè)和長(zhǎng)尾理論正好相悖,其實(shí)也不是相悖,只是不同的理論使用的場(chǎng)景不同。在80/20原則生效的地方,我們都應(yīng)該考慮是否可以使用緩存。但即使是這樣,緩存也有不同的用法,舉個(gè)例子,一個(gè)網(wǎng)站的首頁(yè)估計(jì)是被訪問(wèn)的次數(shù)最多的,我們可以考慮給首頁(yè)做一個(gè)頁(yè)面緩存,而如果在某個(gè)頁(yè)面上,比如說(shuō)javaeye的java版區(qū)只有前幾個(gè)頁(yè)面是訪問(wèn)最頻繁的,(假設(shè)javaeye是使用h

2、ibernate,當(dāng)然這只是假設(shè),我們都知道javaeye是使用ror開(kāi)發(fā)的)那么我們就可以考慮給java版區(qū)的record做二級(jí)緩存了,因?yàn)槎?jí)緩存中是按照對(duì)象的id來(lái)保存的,所以應(yīng)該來(lái)說(shuō)這前面幾頁(yè)使用的對(duì)象會(huì)一直存在于緩存之中(如何使用hibernate的二級(jí)緩存壇子上也有介紹)。由此可見(jiàn)不同的頁(yè)面的緩存策略有可能有天壤之別。本文的目的就是上面所講的兩種情況之一,頁(yè)面緩存。毫無(wú)疑問(wèn),幾乎所有的網(wǎng)站的首頁(yè)都是訪問(wèn)率最高的,而首頁(yè)上的數(shù)據(jù)來(lái)源又是非常廣泛的,大多數(shù)來(lái)自不同的對(duì)象,而且有可能來(lái)自不同的db,所以給首頁(yè)做緩存是一個(gè)不錯(cuò)的主意,

3、那么主頁(yè)的緩存策略是什么樣子的呢,我認(rèn)為應(yīng)該是某個(gè)固定時(shí)間之內(nèi)不變的,比如說(shuō)2分鐘更新一次。那么這個(gè)緩存應(yīng)該做在什么地方呢,讓我們來(lái)看一下,假設(shè)您的應(yīng)用的結(jié)構(gòu)是page-filter-action-service-dao-db,這個(gè)過(guò)程中的-的地方都是可以做緩存的地方,根據(jù)頁(yè)面緩存的特征,應(yīng)該把頁(yè)面緩存做到盡量靠近客戶的地方,就是在page和filter之間,這樣的優(yōu)點(diǎn)就是第一個(gè)用戶請(qǐng)求之后,頁(yè)面被緩存,第二個(gè)用戶再來(lái)請(qǐng)求的時(shí)候,走到filter這個(gè)請(qǐng)求就結(jié)束了,無(wú)需再走后面的action-service-dao-db。帶來(lái)的好處是服務(wù)器

4、壓力的減低和客戶段頁(yè)面響應(yīng)速度的加快。那么我們來(lái)看一下如何使用ehcache做到這一點(diǎn)。在使用ehcache的頁(yè)面緩存之前,我們必須要了解ehcache的幾個(gè)概念,1timeToIdleSeconds,多長(zhǎng)時(shí)間不訪問(wèn)該緩存,那么ehcache就會(huì)清除該緩存。2timeToLiveSeconds,緩存的存活時(shí)間,從開(kāi)始創(chuàng)建的時(shí)間算起??吹竭@里,我們知道,首頁(yè)的頁(yè)面緩存的存活時(shí)間,我們定的是2分鐘,那么也就是說(shuō)我們的timeToLiveSeconds應(yīng)該設(shè)置為120,同時(shí)我們的timeToIdleSeconds最好也設(shè)置為2分鐘,或者大于2分

5、鐘。我們來(lái)看一下下面這個(gè)配置,這個(gè)配置片段應(yīng)該放到ehcache.xml中:SimplePageCac

6、hingFilter是緩存的名字,maxElementsInMemory表示內(nèi)存中SimplePageCachingFilter緩存中元素的最大數(shù)量為10,maxElementsOnDisk是指持久化該緩存的元素到硬盤(pán)上的最大數(shù)量也為10(),eternal=false意味著該緩存會(huì)死亡。overflowToDisk=true意思是表示當(dāng)緩存中元素的數(shù)量超過(guò)限制時(shí),就把這些元素持久化到硬盤(pán),如果overflowToDisk是false,那么maxElementsOnDisk的設(shè)置就沒(méi)有什么意義了。memoryStoreEvictionPo

7、licy=LFU是指按照緩存的hit值來(lái)清除,也就是說(shuō)緩存滿了之后,新的對(duì)象需要緩存時(shí),將會(huì)將緩存中hit值最小的對(duì)象清除出緩存,給新的對(duì)象騰出地方來(lái)了(文章最后有ehcache中自帶的3種緩存清空策略的介紹)。接著我們來(lái)看一下SimplePageCachingFilter的配置,indexCacheFilternet.sf.ehcache.constructs.web.filter.SimplePageCachingFilter

8、er-class>indexCacheFilter*index

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。