MybatisPlus二級緩存體系探究分析
一、序言
本文承接[Mybatis緩存體系探究],提供基于MybatisPlus技術可用于生產環(huán)境下的二級緩存解決方案。
1、前置條件
掌握MyBatis二級緩存的原理
有關MyBatis緩存原理內容,參考[Mybatis緩存體系探究]
選擇符合條件的MybatisPlus版本
本方案對MybatisPlus版本有嚴格的限制,使用版本不低于3.4.3.4,如果低于此版本,則無法滿足生產環(huán)境條件下的閉環(huán)需求。
正確處理連接(多表)查詢
正確的多表連接查詢,請參考[MybatisPlus連接查詢解決方案]
2、目標與收獲
如果應用有分布式緩存需求,那么直接棄用二級緩存的方案,直接選配業(yè)務層緩存方案。
假如應用沒有分布式場景,那么通過簡單改造,引入二級緩存,能夠極大提高響應效率。
二、原理分析
1、二級緩存
選用MybatisPlus來實現(xiàn)二級緩存最大的考量是其使用的單表操作,換而言之,正確的使用二級緩存的前提是不能使用傳統(tǒng)意義上的多表連接操作,否則一定存在緩存數(shù)據(jù)不能實時更新的情況。
2、緩存數(shù)據(jù)更新
所有的緩存數(shù)據(jù)必然涉及到數(shù)據(jù)更新,二級緩存同樣需要主動更新數(shù)據(jù)。二級緩存是以命名空間為單位的,換而言之同一個命名空間內的數(shù)據(jù)更新會自動觸發(fā)緩存更新(本質為數(shù)據(jù)失效)。查詢操作緩存數(shù)據(jù),增加、修改、刪除數(shù)據(jù)使緩存失效。
自成體系的緩存更新與管理在提高了應用響應速度的同時降低了緩存管理的復雜度,有利于提高開發(fā)效率。
3、緩存的區(qū)別
這里提到的二級緩存有必要與三級緩存(業(yè)務緩存)做區(qū)分,二級緩存指DAO層緩存,使用緩存的目的是降低網(wǎng)絡IO對應用的影響;三級緩存指業(yè)務層緩存,主要是降低復雜計算對CPU性能的占用。
三、本地二級緩存
對于普通項目,使用內置本地二級緩存即能夠滿足需求,這里以MybatisPlus為例說明如何正確的使用二級緩存。
1、兩套API
MybatisPlus內置封裝兩套訪問數(shù)據(jù)庫的API,一是以BaseMapper為基礎的API,另一套是以AR為基礎的API,二者在使用二級緩存不可通用。表現(xiàn)形式是BaseMapper內置接口緩存的數(shù)據(jù),使用AR內置接口更新數(shù)據(jù)時無法清楚緩存,至少到此版本尚不支持。
考慮到BaseMapper接口體系比較豐富,因此選擇保留BaseMapper體系接口而禁用AR接口,從機制上保證使用的是一套接口,從而調用增刪查改能夠實時刷新二級緩存。
需要指明的是Mapper層和Service層使用的是同一套接口,因此可放心使用。
2、緩存實現(xiàn)類型
默認二級緩存實現(xiàn)類型為PerpetualCache
,此中類型的緩存要求被緩存的對象實現(xiàn)序列化接口。其它類型的本地緩存有EhCache、Caffeine等。
以上就是MybatisPlus二級緩存體系探究分析的詳細內容,更多關于MybatisPlus二級緩存體系的資料請關注腳本之家其它相關文章!
相關文章
OB系統(tǒng)變量Variables及ODC管理會話功能詳解
這篇文章主要為大家介紹了OB系統(tǒng)變量Variables及ODC管理會話功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12VS2019創(chuàng)建MFC程序的實現(xiàn)方法
這篇文章主要介紹了VS2019創(chuàng)建MFC程序的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08