Mybatis緩存的原理是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站設計、做網站、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的長海網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!1、什么是緩存[Cache]
存在內存中的臨時數據。
將用戶經常查詢的數據放在緩存(內存)中,用戶去查詢數據就不用從磁盤上(關系型數據庫數據文件)查詢,從緩存中查詢,從而提高查詢效率,解決了高并發(fā)系統(tǒng)的性能問題。
2、為什么要使用緩存
減少和數據庫的交互次數,減少系統(tǒng)開銷,提高系統(tǒng)效率。
3、什么樣的數據需要使用緩存
經常查詢且不易改變的數據
4、Mybatis緩存
MyBatis包含一個非常強大的查詢緩存特性,它可以非常方便地定制和配置緩存。緩存可以極大的提升查詢效率。
MyBatis系統(tǒng)中默認定義了兩級緩存:一級緩存和二級緩存
默認情況下,只有一級緩存開啟。(SqlSession級別的緩存,也稱為本地緩存)
二級緩存需要手動開啟和配置,他是基于namespace級別的緩存。
為了提高擴展性,MyBatis定義了緩存接口Cache。我們可以通過實現(xiàn)Cache接口來自定義二級緩存
5、一級緩存
一級緩存也叫本地緩存:
與數據庫同一次會話期間查詢到的數據會放在本地緩存中。
以后如果需要獲取相同的數據,直接從緩存中拿,沒必須再去查詢數據庫;
6、一級緩存失效的四種情況
sqlSession不同
sqlSession相同,查詢條件不同
sqlSession相同,兩次查詢之間執(zhí)行了增刪改操作!
sqlSession相同,手動清除一級緩存
@Test public void testQueryUserById(){ SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.queryUserById(1); System.out.println(user); session.clearCache();//手動清除緩存 User user2 = mapper.queryUserById(1); System.out.println(user2); System.out.println(user==user2); session.close(); }
所以說,一級緩存就是一個map
7、二級緩存
二級緩存也叫全局緩存,一級緩存作用域太低了,所以誕生了二級緩存
基于namespace級別的緩存,一個名稱空間,對應一個二級緩存;
工作機制
一個會話查詢一條數據,這個數據就會被放在當前會話的一級緩存中;
如果當前會話關閉了,這個會話對應的一級緩存就沒了;但是我們想要的是,會話關閉了,一級緩存中的數據被保存到二級緩存中;
新的會話查詢信息,就可以從二級緩存中獲取內容;
不同的mapper查出的數據會放在自己對應的緩存(map)中;
使用步驟:
核心配置文件
<setting name="cacheEnabled" value="true"/>
去每個mapper.xml中配置使用二級緩存,這個配置非常簡單;
方式一:
<cache/>
方式二:
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
這個更高級的配置創(chuàng)建了一個 FIFO 緩存,每隔 60 秒刷新,最多可以存儲結果對象或列表的 512 個引用,而且返回的對象被認為是只讀的,因此對它們進行修改可能會在不同線程中的調用者產生沖突。
8、結論
只要開啟了二級緩存,我們在同一個Mapper中的查詢,可以在二級緩存中拿到數據
查出的數據都會被默認先放在一級緩存中
只有會話提交或者關閉以后,一級緩存中的數據才會轉到二級緩存中
原理圖:
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)網站建設公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)建站的支持。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、建站服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:Mybatis緩存的原理是什么-創(chuàng)新互聯(lián)
文章起源:http://muchs.cn/article6/cshoog.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供關鍵詞優(yōu)化、微信公眾號、標簽優(yōu)化、域名注冊、虛擬主機、手機網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容