Mybatis缓存

2018-10-18  本文已影响0人  水小丶默

一级缓存:默认开启

1,为什么要一级缓存 

减少对数据库的访问压力

2,一级缓存有什么问题?

public void query(){

SqlSesion sqlsesion;

sqlsession.selectOne();

//在这之间被update,下面会出现脏数据

sqlsession.selectOne();命中缓存 内存

}

为什么还这么设计?这样写的概率很低    

二级缓存

默认是关闭,也不建议使用,一般用Redis第三方实现

1.Scope:基于namespace

2.怎么验证二级缓存的存在?

3.二级缓存有什么问题?

a容易出现脏数据(关联查询A,B 在A的mapper中修改B数据,B中的二级缓存就是脏数据)

b全部失效

更新策略update,delete 会删除所有的二级缓存

上一篇下一篇

猜你喜欢

热点阅读