Git007

导航

【MyBatis学习】04、缓存

缓存(Cache)

1、简介

1、什么是缓存

  • 存在内存中的临时数据
  • 将用户经常查询的数据放入缓存中,避免用户从磁盘上查询数据,而从缓存中查询,提高查询效率,解决了高并发系统的性能问题。

2、Mybatis缓存

Mybatis默认两级缓存:一级缓存二级缓存

  • 默认只开启一级缓存(SqlSession级别缓存)。
  • 二级缓存需手动开启配置,基于namespace级别缓存。
  • 提高拓展性,Mybatis定义缓存接口Cache,可通过实现接口来自定义二级缓存。

2.1一级缓存

缓存失效的情况:

  1. 查询不同的东西。
  2. 增删改操作,可能会改变原来的数据,故必定会刷新缓存。
  3. 查询不同的Mapper.xml。
  4. 手动清理缓存

小结:一级缓存是默认开启的,只在一次SqlSession中有效 ,拿到连接到关闭连接区间段

2.2二级缓存

步骤

  1. 开启全局缓存 (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下就有效
  • 所有数据都会放一级缓存中
  • 只有当会话提交或关闭的时候,才会提交二级缓存

posted on 2022-02-23 21:57  cczzhh007  阅读(39)  评论(0)    收藏  举报