mybatis有二級緩存,為什么還要用redis???


  1、mybatis一級緩存作用域是session,session在commit之后緩存就消失了。

  2、mybatis二級緩存作用域是sessionfactory,該緩存是以namespace為單位的(也就是一個Mapper.xml文件),不同namespace下操作互不影響。    

  3、所有對數據表的改變操作都會刷新緩存,但是一般不要用二級緩存,例如,在UserMapper.xml中有大多數針對User表的操作,但是在另一個XXXManpper.xml中,還有針對user單表的操作,這會導致user在兩個命名空間下的數據不一致。

  4、如果在UserMapper.xml中做了刷新緩存的操作,在XXXMapper.xml中緩存仍然有效,如果有針對user的單標查詢,使用緩存的結果可能會不正確,讀到臟數據。

  5、redis很好的解決了這個問題,而且比之一、二級緩存的更好,redis可以搭建在其它服務器上,緩存容量可擴展,redis可以靈活的使用在需要的緩存的數據上,比如一些熱點數據,統計點贊啊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM