<!--
maxElementsInMemory="10"內存中的最大頁面對象 eternal="false" timeToIdleSeconds="120" timeToIdleSeconds ,多長時間不訪問該緩存,那么ehcache 就會清除該緩存。 timeToLiveSeconds="240" timeToLiveSeconds ,緩存的存活時間,從開始創建的時間算起。 overflowToDisk="true" 是否寫入硬盤
--> <!-- Page and Page Fragment Caches -->
<cache name="show" maxElementsInMemory="10" eternal="false" timeToIdleSeconds="30" timeToLiveSeconds="60" overflowToDisk="true"> </cache> 這里只有一個cache,在ehcache即對應一個Ehcache對象,由CacheManager(單例模式實現)去管理,在CacheManager里用配置文件中的name可以獲取Ehcache對象的實例。 代碼如下: Ehcache cache = CacheManager.getInstance().getEhcache(cacheName); 展示頁面有很多,比如一個商家一個展示頁面,即show.action?showId=1后面的數字是可變的,在ehcache里面是用map去存儲的,比如show.action?showId=1對應的key為: GET/show.actionshowId=1 GET為訪問方式,把問號去掉了,ehcache內部也是這樣存儲的(類似map),這樣保證了請求的頁面在內存中的唯一性,獲取也快。 既然key都知道了,刪除就好了,直接 查看api文檔Ehcache里有很多remove方法。示例代碼如下: Ehcache cache = CacheManager.getInstance().getEhcache(cacheName); if (null == cache) { return; } cache.remove(key); key的獲取就不用多說了吧,當更新一個頁面的數據時,肯定知道數據的id,直接字符串處理下就可以獲取key了,這里注意下就是,代碼編寫時,一般url里都有項目的名字,正式發布時,肯定沒有,而前者在ehcache里生成key里有項目的名字,即: GET/projetName/show.actionshowId=1 所以最好用spring注入值,到時改也方便。 更詳細的,請查看api文檔和測試下,官方文檔給的都是對象的,頁面緩存的給的比較少,我也是查看源碼才得出上面代碼。 記一下,希望幫助有需求的人。
posts - 80, comments - 24, trackbacks - 0, articles - 32
Copyright © asdtiang