一级缓存
什么是缓存??
缓存是存储在内存 (cache) 中的数据, 一般情况都存在内存, 在内存数据存储满了, 会存储到硬盘上(disk), 或是在我们进行一些操作和配置也可以把缓存存储到磁盘中.
缓存的作用是什么??
缓存的作用可以减轻数据库的压力, 减少用户对数据库的访问, 可以说用户对数据库进行的重复操作在缓存中就可以实现操作, 提高用户体验.
下面这张图是缓存的理解图
曾删改会对缓存造成影响.
写个测试, 测试一下缓存是否存在: 答案是肯定的
现在测试一下进行曾删改数据, 是否会对缓存造成影响?
二级缓存
二级缓存和一级缓存的区别, 一级缓存是存储在 SqlSession 作用域中生命周期是整个会话是进程级别的, 二级缓存是可以跨进程的, 实现数据共享. 作用域是 Mapper.
缓存的底层其实是个 Map 集合, key 用于存储 SQLId 和 sql,value 存储的是 sql 的引用.
二级缓存默认是开启的, 在大配置中, 但是开启二级缓存要有三个要素.
二级缓存的开启方式: 1. 在大配置中的 setting 设置二级缓存 2. 在小配置中写 cache 自闭和标签 3. 实体类继承 Serializable
二级缓存的作用比一级缓存大, 二级缓存并不是在一个会话中起作用, 将一个会话结束, 开启另一个会话二级缓存是否会起作用
ehcache 缓存的配置
为什么要配置 ehcache?
因为 ehcache 是专注缓存这块的, 比 mybatis 自身的要快捷方便很多, 因为 mybatis 注重的是框架.
1. 在 resources 下
可以上网查一下这个文件
2. 在小配置中增加一条
type 写的是你 ehcache 的全路径
3. 在项目的 pom.xml 引入 ehcahce 的 jar 包
来源: http://www.bubuko.com/infodetail-2846139.html