對於ehcache,其實並不陌生,hibernate的預設二級快取實現的是ehcache,下面談談ehcache的配置方法以及一般的使用
ehcache的預設配置檔案是ehcache.xml,只要將該檔案放置在classpath下,就可以呼叫,下面兩種方法是通過其他路徑或名稱呼叫配置檔案。
一、通過classpath下其他檔案進行呼叫
[code]url url = getclass().getresource("/anotherconfigurationname.xml");
cachemanager manager = new cachemanager(url);[/code]
二、通過inputstream來呼叫
[code]inputstream fis = new fileinputstream(new file("src/config/ehcache.xml").getabsolutepath());
try finally [/code]
下面說說配置:
[code]maxelementsinmemory="10000" 記憶體中儲存的物件的個數
eternal="false" cache中的物件是否過期,預設為過期(按照配置中的時間),如果改為true,表示該物件永遠不過期
timetoidleseconds="120" 物件限制多少秒過期
timetoliveseconds="120" 物件存活多少秒過期
overflowtodisk="true" 物件在記憶體中達到最大個數的時候,是否寫入硬碟
maxelementsondisk="10000000" 在硬碟上最大的物件個數
diskpersistent="false" 當jvm結束是是否持久化物件
[/code]
ehcache現在開始支援群集,所以cache中的物件必須實現序列化。
當你想將記憶體中的物件持久化到硬碟上,也就是說當jvm重新啟動後能繼續使用cache,必須注意一下兩點:
diskpersistent="true" 必須設定為true
cache.flush; 程式中要注意這樣寫,否則不能持久化。
關於ehcache快取的使用(簡單對比redis)
最近在做乙個專案,某個介面查詢資料到返回資料總計需要7000 毫秒,一直在考慮優化的問題,優化也有原來的一家一家查詢到一次查詢所有的,在查詢不同天數。結果是1500 雖然優化了不少,但是資料結構會變化,前台渲染資料會更加麻煩,暫時也沒有更新。所以後來就採用了快取的機制,查詢的資料快取10小時,雖然第...
ehcache的配置使用
updatecheck 是否檢測更新,如果設定為true,它會到www.terracotta.org檢測是否有新的包 monitoring determines whether the cachemanager should automatically register the sampledcac...
ehcache 快取使用
一 詳細配置步驟 1,新增ehcache.xml檔案 將ehcache.xml檔案新增到src路徑下面。ehcache.xml檔案內容如下 2,新增spring配置檔案 二 使用 1,定義ehcache工具方法 public class ehcache public cache getcache p...