2

你好我有一个特定的任务要在 EhCache 中解决,但我无法实现它。

我想建立一个“永恒的缓存”,它将在内存中有少量项目以供立即使用,其余的将保留在磁盘上。我通常将数据写入多个线程中的缓存,并希望将这些项目一直保存在磁盘上,这样即使在重新启动后我也可以使用它们。

<cache name="eternal_cache" maxBytesLocalHeap="1%" maxBytesLocalDisk="2G"
       eternal="false" timeToLiveSeconds="0"
       timeToIdleSeconds="120" overflowToDisk="true"
       diskPersistent="true" memoryStoreEvictionPolicy="LFU"
       transactionalMode="off"/>

基本上我想要 EhCache 中的持久性功能,它是通过 定义的,但有大小限制,这是持久性不允许的。

我遇到了一个问题,即我的配置在内存中有项目,但没有正确关闭 ehcache 管理器会丢失我的数据。我阅读了有关 flush() 的信息,但它会将项目保留在磁盘上,但我希望至少有一些数据在内存中。

你能告诉我如何根据我的需要配置缓存吗?

4

1 回答 1

2

阅读官方手册后,我找到了解决方案。

可以仅使用 Ehcache Persistence 策略进行持久化,但在 Enterprise 版本中。

在普通版本中,只有调用flush()or才有可能shutdown()

于 2013-03-29T10:10:05.623 回答