成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Mybatis緩存的原理是什么-創(chuàng)新互聯(lián)

Mybatis緩存的原理是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的長海網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1、什么是緩存[Cache]

  • 存在內(nèi)存中的臨時數(shù)據(jù)。

  • 將用戶經(jīng)常查詢的數(shù)據(jù)放在緩存(內(nèi)存)中,用戶去查詢數(shù)據(jù)就不用從磁盤上(關(guān)系型數(shù)據(jù)庫數(shù)據(jù)文件)查詢,從緩存中查詢,從而提高查詢效率,解決了高并發(fā)系統(tǒng)的性能問題。

2、為什么要使用緩存

減少和數(shù)據(jù)庫的交互次數(shù),減少系統(tǒng)開銷,提高系統(tǒng)效率。

3、什么樣的數(shù)據(jù)需要使用緩存

經(jīng)常查詢且不易改變的數(shù)據(jù)

4、Mybatis緩存

  • MyBatis包含一個非常強大的查詢緩存特性,它可以非常方便地定制和配置緩存。緩存可以極大的提升查詢效率。

  • MyBatis系統(tǒng)中默認(rèn)定義了兩級緩存:一級緩存和二級緩存

    • 默認(rèn)情況下,只有一級緩存開啟。(SqlSession級別的緩存,也稱為本地緩存)

    • 二級緩存需要手動開啟和配置,他是基于namespace級別的緩存。

    • 為了提高擴展性,MyBatis定義了緩存接口Cache。我們可以通過實現(xiàn)Cache接口來自定義二級緩存

5、一級緩存

一級緩存也叫本地緩存:

  • 與數(shù)據(jù)庫同一次會話期間查詢到的數(shù)據(jù)會放在本地緩存中。

  • 以后如果需要獲取相同的數(shù)據(jù),直接從緩存中拿,沒必須再去查詢數(shù)據(jù)庫;

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級別的緩存,一個名稱空間,對應(yīng)一個二級緩存;

  • 工作機制

    • 一個會話查詢一條數(shù)據(jù),這個數(shù)據(jù)就會被放在當(dāng)前會話的一級緩存中;

    • 如果當(dāng)前會話關(guān)閉了,這個會話對應(yīng)的一級緩存就沒了;但是我們想要的是,會話關(guān)閉了,一級緩存中的數(shù)據(jù)被保存到二級緩存中;

    • 新的會話查詢信息,就可以從二級緩存中獲取內(nèi)容;

    • 不同的mapper查出的數(shù)據(jù)會放在自己對應(yīng)的緩存(map)中;

使用步驟:

核心配置文件

<setting name="cacheEnabled" value="true"/>

去每個mapper.xml中配置使用二級緩存,這個配置非常簡單;

方式一:

<cache/>

方式二:

<cache
 eviction="FIFO"
 flushInterval="60000"
 size="512"
 readOnly="true"/>

這個更高級的配置創(chuàng)建了一個 FIFO 緩存,每隔 60 秒刷新,最多可以存儲結(jié)果對象或列表的 512 個引用,而且返回的對象被認(rèn)為是只讀的,因此對它們進行修改可能會在不同線程中的調(diào)用者產(chǎn)生沖突。

8、結(jié)論

只要開啟了二級緩存,我們在同一個Mapper中的查詢,可以在二級緩存中拿到數(shù)據(jù)

查出的數(shù)據(jù)都會被默認(rèn)先放在一級緩存中

只有會話提交或者關(guān)閉以后,一級緩存中的數(shù)據(jù)才會轉(zhuǎn)到二級緩存中

原理圖:

Mybatis緩存的原理是什么

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)建站的支持。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站jinyejixie.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、建站服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文標(biāo)題:Mybatis緩存的原理是什么-創(chuàng)新互聯(lián)
文章起源:http://jinyejixie.com/article6/cshoog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、微信公眾號標(biāo)簽優(yōu)化、域名注冊、虛擬主機、手機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
禄丰县| 绥棱县| 富蕴县| 揭西县| 正镶白旗| 昭觉县| 柞水县| 曲麻莱县| 宁安市| 梅河口市| 海伦市| 宜兰县| 陕西省| 开封县| 镇赉县| 昌江| 永城市| 澜沧| 隆安县| 苗栗县| 岳西县| 岑溪市| 宁城县| 万载县| 兴义市| 舟曲县| 宜川县| 台湾省| 甘孜| 前郭尔| 子长县| 涿鹿县| 泊头市| 阿城市| 桐城市| 华安县| 开封市| 伊川县| 绥中县| 宁海县| 高碑店市|