什么是缓存:存在内存中的临时数据
为什么使用缓存:减少与数据库的交互次数,从缓存中查询,减少系统开销,提高系统性能,解决高并发系统性能问题
什么时候用缓存:
-
适用于缓存的:经常查询但不经常修改的(eg: 省市,类别数据),数据的正确与否对最终结果影响不大的
-
不适用缓存的:经常改变的数据 , 敏感数据(例如:股市的牌价,银行的汇率,银行卡里面的钱)等等,
mabatis分一级缓存和二级缓存
一级缓存
一级缓存默认开启
一级缓存查询分析:执行sql语句,第一次查询用户ID为1时先去缓存中找,没找到则去数据库查找并将数据写入缓存,第二次查询用户ID为1时,去缓存中找,若找到直接从缓存中获取数据
一级缓存什么时候清空:sqlsession对象销毁时,增删改,commit提交
二级缓存
二级缓存是SqlSessionFactory的缓存,同一个SqlSessionFactory创建的SqlSession才能共享二级缓存的内容,并且可以操作二级缓存.
二级缓存要手动开启 在主配置文件<setting name="cacheEnabled" value="true"/> 在映射文件<cache/>标签在你想用二级缓存的语句标签中添加useCache="true" 默认为true 不想用设置为false
二级缓存注意 :
1.一级缓存清空后二级缓存才能生效
2.要进行二级缓存的POJO类必须实现Serializable接口,就可以使用序列化方式来保存对象。