ehcache重新整理到磁碟的結果錯誤

2021-09-10 19:08:14 字數 731 閱讀 1073

在使用ehcache做插入時,希望存到磁碟上.

但是一重啟,根本讀不到我想要的資料.發現根本沒有存進去.配置什麼的都沒有毛病.

最終發現問題出在我寫的**上:

源**是這樣寫的:

快取的key是userid,值是乙個map.然後把map裡存的是其他相關value.

我先去快取檢視,然後用map接受,如果不存在,就新建乙個map,放到快取裡,由於知曉記憶體位址,所以我直接修改了map,在記憶體裡這樣是可以使用的.但是如果儲存到disk裡就出問題了.導致我的disk並沒有儲存.

public static void put(integer userid, integer value)  else 

map.put(userid, value);

cache.flush();

}

結果應該這樣做:

public static void put(integer userid, integer value)  else 

map.put(userid, value);

cache.put(new element(userid, map));//把該行移到下面

cache.flush();

}

因為cache.put會做很多事情,並不僅僅是存到linkedhashmap裡.而如果裡面有資料的話,會不走cache.put方法,最終導致flush刷出也沒什麼用.

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