gpt4 book ai didi

java - 对象未存储在 EhCache 中

转载 作者:行者123 更新时间:2023-11-29 03:19:25 24 4
gpt4 key购买 nike

请帮助我理解为什么D:/DataStore_ehCache 中没有文件或任何东西。但程序执行时没有异常或错误

Profit profit = new Profit();
profit.setId(1);
profit.setAmt("1000");
profit.setLastupdate(new Date());

DiskStoreConfiguration disk =new DiskStoreConfiguration();
disk.setPath("D:/DataStore_ehCache");

Configuration cacheManagerConfig = new Configuration();
cacheManagerConfig.addDiskStore(disk);

//Create a CacheManager using defaults
CacheManager manager = CacheManager.create(cacheManagerConfig);

//Create a Cache specifying its configuration.
CacheConfiguration cacheconfig = new CacheConfiguration("Profit",1000);
cacheconfig.memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LFU)
.eternal(false)
.timeToLiveSeconds(60)
.timeToIdleSeconds(30)
.diskExpiryThreadIntervalSeconds(0)
.persistence(new PersistenceConfiguration().strategy(Strategy.LOCALTEMPSWAP));

Cache profitCache = new Cache(cacheconfig);
manager.addCache(profitCache);

Element element = new Element(profit.getId(), profit);
manager.getTransactionController().begin();
profitCache.put(element);
manager.getTransactionController().commit();
System.out.println("Element put in Store");
manager.shutdown();

最佳答案

“Local Temp Swap”持久化策略不会在两次重启之间持久化到磁盘。关闭缓存管理器后,您将丢失缓存中存储的所有内容。不幸的是,对于 Ehcache 的标准开源版本,您无法在重启之间保持不变。要启用该功能,您需要将持久化策略设置为“localRestartable”,这仅在 Terracotta 的 Big Memory Go 产品中可用。 Big Memory Go 可以免费使用但有限制,但它不是开源的。

在过去的 Ehcache 版本中,可以通过将缓存的 overflowToDisk 和 diskPersistent 属性设置为 true 来持久化到磁盘。然而,从 Ehcache 2.6 开始,这些选项已被删除,以支持上述持久性策略。

参见 their documentation有关持久性策略的更多信息。

关于java - 对象未存储在 EhCache 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24623414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com