哈哈哈123457
2017-05-14 13:24
采纳率: 100%
浏览 4.1k

使用redis缓存替代mybatis系统缓存的优点

为什么要使用redis替代mubatis系统缓存 ,使用redis缓存替代mybatis系统缓存的优点

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • AngusC· 2017-05-14 15:22
    已采纳

    mybatis的缓存:分为一级缓存和二级缓存,一级缓存的作用范围为session,所以当session commit或close后,缓存就会被清空 ,二级缓存的作用范围为sqlsessionfactory,映射语句文件中的所有select语句都会被缓存,所有CRUD的操作都会刷新缓存,缓存会存储1024个对象,缓存容易造成脏毒数据,影响真实数据的准确性,实际开发业务中会放弃二级缓存。

    redis的缓存:可控制的后端缓存服务,通常用来缓存后端数据,当程序第二次访问数据库的时候,命中redis,大大减少数据库的负担,减少访问数据库的链接时间,实际开发过程中都会采用这种缓存方式,达到访问速度和效率的解决方案。

    点赞 评论
  • jy00361722 2018-12-20 01:03

    楼上说的非常正确,补充下因为mybatis是以命名空间来区分二级缓存的,多表联合查询时会造成脏读的情况。弊大于利,所以默认是关闭的,官方给的解决方案也是结合redis。
    同时也想请教下,按照楼上所说的减少了数据库的连接数,增加的是redis的连接数。也就是说从优化数据库变成要优化redis了。redis问题也不少。有没有好的优化方案?

    点赞 评论

相关推荐 更多相似问题