2013-03-15 98 views
2

你好我有一个特定的任务来解决在EhCache,但我无法实现它。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(),但是它将内容保留在磁盘上,但我至少需要一些内存中的数据。

你能请别人告诉我如何配置缓存以满足我的需求吗?

回答

2

阅读官方手册后,我发现解决方案。

只有使用Ehcache持久性策略才是可能的,但Ehcache持久性策略在Enterprise版本中是存在的。

在正常版本中,只能拨打flush()shutdown()