Mybatis学习:Mybatis缓存配置

码农老张 后端 2025-01-07

Mybatis学习:Mybatis缓存配置

MyBatis缓存配置

数据库 一级缓存、二级缓存、三级缓存
一级缓存:在维持一个会话时,查询获取的数据会存放在一级缓存中,下次使用从缓存中获取。 (事务级缓存)
二级缓存:当会话关闭时,一级缓存的数据会保存在二级缓存中。 (应用级缓存)
三级缓存:可以实现跨jvm,通过远程调用的方式实现数据同步。 (查询缓存 如redis)

二级缓存的使用场景:
1.以查询为主的应用,尽可能少的增、删、改操作;
2.业务以单表操作为主;
3.表与表之间的关联尽可能少;

MyBatis如何配置二级缓存

第一步: 在mybatis-config.xml开启缓存 (默认是打开的)xml

代码解读
复制代码
<settings> <setting name="cacheEnable" value="true"/> </settings>

第二步:在映射文件中进行配置
由于Mybatis在每一对象映射配置单独选择缓存策略,
所以分为2种 Mapper.xml 或者 在接口中使用注解
Mapper.xmlini

代码解读
复制代码
<cache eviction="FIFO" #先进先出的收回策略 flushIntervak="6000" size="512" readOnly="true" #返回对象只可读 />

使用注解的情况下 在接口上配置ini

代码解读
复制代码
@CacheNamespace( eviction = FifoCahe.class, flushInterval = 60000, size = 512, readWrite = false #false只读 true读写 )

集成Redis缓存

特点:存取缓存使用了序列化和反序列 所以实体类要实现Serializable接口
第一步:添加项目依赖xml

代码解读
复制代码
<dependency> <groupId>org.mybatis.caches</groudId> <artifactId>mybatis-redis</artifactId> <version>1.0.0-beta2</version> </dependency>

第二步:配置redis参数:redis.propertiesini

代码解读
复制代码
host=localhost port=6379 connectionTimeout=5000 soTimeout=5000 password= database=0 clientName=

第三步 在mapping.xml中设置缓存类型ini

代码解读
复制代码
<mapper namespace="src.com.luo.MybatisMappings.UserMapper.xml" > <cache type="org.mybatis.caches.redis.RedisCache"/> </mapper>

转载来源:https://juejin.cn/post/6968380877193609246

Apipost 私有化火热进行中

评论