我在ehcache中存在持久性問題。緩存本身在第一次啓動時工作正常,但當我重新啓動tomcat servlet時,它不記得舊值。 這是我的初始化ehcache的代碼。我沒有使用任何XML。EhCache 3.1.3持久性問題
import org.ehcache.Cache;
import org.ehcache.PersistentCacheManager;
import org.ehcache.Status;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.ehcache.config.units.EntryUnit;
import org.ehcache.config.units.MemoryUnit;
PersistentCacheManager persistentCacheManager =
CacheManagerBuilder.newCacheManagerBuilder()
.with(CacheManagerBuilder.persistence("/cache"))
.withCache("test-cache",
CacheConfigurationBuilder.newCacheConfigurationBuilder(
Integer.class, String.class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.heap(1, EntryUnit.ENTRIES)
.offheap(1, MemoryUnit.MB)
.disk(20, MemoryUnit.MB)
)
).build(true);
Cache cache = persistentCacheManager.getCache("test-cache", Integer.class, String.class);
log.info("Cache get 1 before putting: " + cache.get(1));
for(int i = 0; i< 1000; i++) {
cache.put(i,"Hello");
}
log.info("Cache get 1 after putting: " + cache.get(1));
重新啓動後,「前」日誌語句的結果始終爲空。
也許我沒有完全理解什麼是「持續性」,在這種情況下意味着什麼?我認爲整個過程是將緩存保存在磁盤上,以便在服務器重新啓動期間重新加載緩存。 – atopcu
文檔建議您是正確的,但我不知道您錯過了什麼。耐心一點。 –