使用ehcache将数据持久化到硬盘,重启服务器之后依然可用

本文详细介绍了Ehcache 2.6.9版本的配置方法,包括磁盘存储、缓存上限、对象永不过期等关键配置参数。通过具体实例展示了如何设置缓存策略,并解释了web.xml中添加监听器的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在借鉴了网上很多例子之后在这里整理一下, ehcache版本为2.6.9,

 

  •      这里给下参考配置:有些注释我直接从网上复制的。。
  • <ehcache>
       <!-- 
             磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
              path:指定在硬盘上存储对象的路径
       -->
       <diskStore path="C:\ehcache" />
        
       <!-- 
            defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理
            maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象
            eternal:代表对象是否永不过期
            overflowToDisk:当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中
       -->
       <defaultCache
          maxElementsInMemory="100"
          eternal="true"
          overflowToDisk="true"/>
     
        <!-- 
            maxElementsInMemory设置成1,overflowToDisk设置成true,只要有一个缓存元素,就直接存到硬盘上去
            eternal设置成true,代表对象永久有效
            maxElementsOnDisk设置成0 表示硬盘中最大缓存对象数无限大
            diskPersistent设置成true表示缓存虚拟机重启期数据 
         -->
         <cache name="f"
               maxElementsInMemory="1"
               eternal="true"
               overflowToDisk="true"
               maxElementsOnDisk="0"
               diskPersistent="true"
        />
    
        <cache name="f-temp"
               maxElementsInMemory="1"
               eternal="false"
               timeToIdleSeconds="0"
               timeToLiveSeconds="120"
               maxElementsOnDisk="0"
               overflowToDisk="true"
               diskPersistent="true"
        />
    
     
    </ehcache>

    web.xml添加监听器

  • 
      <listener>
        <listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class>
      </listener>
    

    使用cache.flush(),每次get、put之后调用cache.flush() ,这样ehcache 会将索引(xxx.index)回写到磁盘。这样就不用担心程序是否非正常退出导致缓存丢失了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值