關於EhCache的使用

2021-08-29 08:56:09 字數 1052 閱讀 5494

對於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...