栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

缓存详解及在MyBatis中的实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

缓存详解及在MyBatis中的实现

  MyBatis中的缓存和计算机组成原理中的缓存作用一致。都是为了可以减少资源调用,降低查询所需的时间。
  打个比方:一次查询的结果,给它暂存在一个可以直接取到的地方。也就是从内存中取到缓存中,进行一个内存 --> 缓存的过程。当我们再次查询相同数据的时候,直接走缓存,不再需要从数据库中查找。

直观一点的说明:缓存就是存在内存中的临时数据

类比计算机组成原理的概念:将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决高并发的性能问题。

使用缓存的优点:减少和数据库的交互次数,减少系统开销,提高系统效率。

那什么样的数据才能使用缓存?
答:经常查询且并不经常改变的数据。

文章目录
    • 一级缓存
    • 二级缓存
    • 缓存原理
    • 自定义缓存

一级缓存

该缓存默认开启,且仅在一次 SqlSession 会话中有效,也就是拿到连接到关闭连接的时间段。
它仅仅对一个会话中的数据进行缓存。

就是一个Map集合。

二级缓存

要启用全局的二级缓存,只需要在你的SQL映射文件中添加一行
< cache />

为何要使用二级缓存及二级缓存的工作机制如下图所示:

实现步骤:

  1. 开启全局缓存(mybatis-config.xml)
  2. 在要使用二级缓存的Mapper接口中开启
  3. 测试
  4. 可能出现的问题:

    该错误为:要将实体类序列化,否则报错。

注意事项:

  • 只要开启了二级缓存,在同一个Mapper下就有效
  • 所有的数据都会先放在一级缓存中
  • 只有当会话提交或关闭时,才会提交到二级缓存中(转存)
缓存原理


原理如上图。

自定义缓存

Ehcache是一种广泛使用的开源Java分布式缓存
主要面向通用缓存。

要在程序中使用Ehcache,需要导包。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/299282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号