mybatis+ehcache(分布式缓存框架)

本文详细介绍如何在MyBatis中启用并配置分布式缓存Ehcache,包括开启二级缓存、实现序列化接口、导入相关jar包、配置XML文件等关键步骤。

分布式缓存框架: 将各个服务器上的缓存数据进行集中管理。

===========================================================
第一步:在sqlMapConfig.xml中打开二级缓存。

<settings>
<setting name="cacheEnabled" value="true"/>
</settings>

第二步:pojo类实现序列化接口(否则缓存无法写入磁盘,会报错)

序列化: 将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时存储区或持久性存储区,之后便可以通过从存储区中读取或反序列化对象的状态信息,来重新创建该对象。

第三步: 导入ehcache相关jar包

点击这里免费下载图片中的版本。

第四步: 在XxxMapper.xml中开启二级缓存

<cache type="org.mybatis.caches.ehcache.LoggingEhcache"></cache>

上面的可以输出日志,在控制台可以看到配置信息。

<cache type="org.mybatis.caches.ehcache.EhcacheCache"></cache>

在这里插入图片描述
可以通过输出判断自己配置的ehcache.xml文件是否生效!

第五步: 配置ehcache.xml文件(文件名必须一致,和sqlMapConfig.xml放在同一路径,若读取不到自己配置的文件则会加载默认的ehcache.xml文件)
ps:若要查看溢出的缓存是否存入磁盘,不仅要
diskStore path=“D:\ehcache”,还要overflowToDisk=“true”

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
 <diskStore path="D:\ehcache" />   
 <defaultCache maxElementsInMemory="10000" 
 maxElementsOnDisk="10000000"
  eternal="false" 
  overflowToDisk="true" 
  timeToIdleSeconds="120"
  timeToLiveSeconds="120" 
  diskExpiryThreadIntervalSeconds="120"
  memoryStoreEvictionPolicy="LRU">
 </defaultCache>
</ehcache>

默认配置文件的位置:核心包下面。
在这里插入图片描述在这里插入图片描述

ehcache.xml文件中的属性介绍:

maxElementsInMemory:缓存最大个数。
maxElementsOnDisk:存入磁盘缓存最大个数。
eternal:对象是否永久有效,一但设置了,timeout将不起作用。
overflowToDisk:当内存中对象数量达到maxElementsInMemory时,Ehcache是否将会对象写到磁盘中,默认false
timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性。
timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用。
iskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。
memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值