【MyBatis学习】04、缓存
缓存(Cache)
1、简介
1、什么是缓存
- 存在内存中的临时数据
- 将用户经常查询的数据放入缓存中,避免用户从磁盘上查询数据,而从缓存中查询,提高查询效率,解决了高并发系统的性能问题。
2、Mybatis缓存
Mybatis默认两级缓存:一级缓存和二级缓存
- 默认只开启一级缓存(SqlSession级别缓存)。
- 二级缓存需手动开启配置,基于namespace级别缓存。
- 提高拓展性,Mybatis定义缓存接口Cache,可通过实现接口来自定义二级缓存。
2.1一级缓存
缓存失效的情况:
- 查询不同的东西。
- 增删改操作,可能会改变原来的数据,故必定会刷新缓存。
- 查询不同的Mapper.xml。
- 手动清理缓存
小结:一级缓存是默认开启的,只在一次SqlSession中有效 ,拿到连接到关闭连接区间段
2.2二级缓存
步骤
- 开启全局缓存 (mybatis配置文件中)
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
2.在要使用的二级缓存Mapper中开启
<cache/>
也可以使用参数
<cache
eviction="FIFO"
flushInterval="60000"
size="512"
readOnly="true"/>
3.测试
尽量将实体类序列化
@AllArgsConstructor
@Data
public class Blog implements Serializable {
private String id;
private String title;
private String author;
private Date createTime;
private int views;
}
小结:
- 只要开启了二级缓存,在同一个Mapper下就有效
- 所有数据都会放一级缓存中
- 只有当会话提交或关闭的时候,才会提交二级缓存
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术