ehcache 中怎么实现数据持久化

ehcache 中怎么实现数据持久化,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

ehcache 和其他缓存类似,需要flush 或者shutdown 才会持久化到硬盘。

会生成.data 的数据文件和 .index 的索引文件,方便重启恢复。

方法1:

<!-- ehcache 磁盘缓存 监控,持久化恢复 -->  
<listener>  
    <listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class>  
</listener>

方法2:
在每次set 时就执行一次 flush

net.sf.ehcache.Cache ehCache = (net.sf.ehcache.Cache) cache.getNativeCache();
        ehCache.flush();

方法3:
maxElementsInMemory设置成1,overflowToDisk设置成true,只要有一个缓存元素,就直接存到硬盘上去

   <!-- 
        maxElementsInMemory设置成1,overflowToDisk设置成true,只要有一个缓存元素,就直接存到硬盘上去
        eternal设置成true,代表对象永久有效
        maxElementsOnDisk设置成0 表示硬盘中最大缓存对象数无限大
        diskPersistent设置成true表示缓存虚拟机重启期数据 
     -->
    <cache 
      name="a"
      maxElementsInMemory="1" 
      eternal="true"
      overflowToDisk="true" 
      maxElementsOnDisk="0"
      diskPersistent="true"/>


其他:
 persistence:表示Cache的持久化,它只有一个属性strategy,表示当前Cache对应的持久化策略。其可选值如下:

localRestartable:该策略只对企业版Ehcache有用。它可以在重启的时候将堆内存或者非堆内存里面的元素持久化到硬盘上,重启之后再从硬盘上恢复元素到内存中。

关于ehcache 中怎么实现数据持久化问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。