我正在使用带有大内存的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”...
不兼容关于如何让我的缓存溢出到磁盘的任何想法?
答案 0 :(得分:0)
我正在使用这样的东西并且它不能用于重启(也不是企业版)但是,我正在使用某种“cach manager”(自己的解决方案) - 我正在将所有缓存备份到每20秒生成一次XML文件。如果有更好的解决方案 - 我也会感激一些建议。
<cache name="dataservice"
maxElementsInMemory="1000"
maxElementsOnDisk="10000"
overflowToDisk="true"
eternal="true"
>
</cache>
答案 1 :(得分:0)
至少从4.1开始,BigMemory Go + Ehcache Enterprise不支持你想要的东西。如果启用localRestartable
选项,Ehcache会将内存缓存镜像到磁盘(同步或异步)。请注意,这不是磁盘的“溢出”或“溢出”。
“localRestartable” - 启用快速重启功能,该功能会自动记录所有BigMemory数据。此选项提供具有容错数据持久性的快速重新启动性。 (来自http://www.terracotta.org/documentation/4.1/bigmemorygo/configuration/fast-restart)