Mybatis

1.mybatis的缓存机制?

        Mybatis有一级缓存和二级缓存
  • 一级缓存又称为会话(Session)缓存,默认开启无法关闭。
            一级缓存的只在同一SQLSession中生效,也就是说在同一个SQLSession中,第一次执行完sql语句会把结果写到缓存中,后续执行同样的sql时会直接从缓存中获取,从而提高查询效率。
  • 二级缓存又称为名称空间(namespace)缓存,作用于某个namespace,可以理解为是接口(Mapper),需要手动配置开启。
            二级缓存可以被多个SQLSession共享,不同的SQLSession只要执行相同 namespace 下的 sql 语句,第一次执行的结果就会写到缓存,第二次会从缓存中获取数据。

2.为什么用Redis缓存不直接用mybatis的缓存?

        因为对数据库的更新操作都会刷新缓存,mybatis的缓存可能会导致读到脏数据,也就是说在更新数据库时,可能导致数据库和缓存数据不一致
        而Redis可以通过延迟双删或者基于canal来实现与数据库的数据一致性。而且Redis还有其他优势,比如:...。


























全部评论

相关推荐

01-07 15:50
四川大学 Java
看日出看日落:好好背八股,做算法。我身边跟你bg差不多的基本都大厂暑期
点赞 评论 收藏
分享
02-12 00:59
已编辑
哈尔滨工业大学 产品经理
华为 软件开发岗 20.6*16薪 本科
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

更多
牛客网
牛客企业服务