6

我正在使用具有大内存的 ehcache entreprise 2.7。我想要一个缓存在满时溢出到磁盘,并且我希望这个缓存在重新启动时保持不变。

我目前的配置是:

<cache name="dataservice"
            eternal="true"
            maxEntriesLocalHeap="1"
            overflowToOffHeap="true"
            maxBytesLocalOffHeap="60M">
    <persistence strategy="localRestartable"/>
</cache>

此配置通过重新启动使缓存持久化(并且效果很好),但它似乎没有溢出到磁盘。我真的很想使用“localRestartable”,因为它比旧属性diskPersistent =“true”更好。“localRestartable”与属性 overflowToDisk="true" 不兼容...

关于如何使缓存溢出到磁盘的任何想法?

4

2 回答 2

0

我正在使用这样的东西,它不适用于重新启动(也不是企业版)但是,我正在使用某种“缓存管理器”(自己的解决方案) - 我正在将所有缓存备份到 XML 文件中20 秒。如果有更好的解决方案 - 我也会很感激一些建议。

<cache name="dataservice"
   maxElementsInMemory="1000"
   maxElementsOnDisk="10000"
   overflowToDisk="true"
   eternal="true"
   >
 </cache>
于 2013-11-29T09:18:17.060 回答
0

至少从 4.1 开始,BigMemory Go + Ehcache Enterprise 不支持您正在寻找的内容。如果启用该localRestartable选项,Ehcache 会将您的内存缓存镜像到磁盘(同步或异步)。请注意,这不是磁盘的“溢出”或“溢出”。

"localRestartable" — 启用快速重启功能,自动记录所有 BigMemory 数据。此选项通过容错数据持久性提供快速可重新启动性。(来自http://www.terracotta.org/documentation/4.1/bigmemorygo/configuration/fast-restart

于 2014-02-21T15:45:08.223 回答