日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MyBatis緩存功能原理及實例解析

瀏覽:26日期:2023-10-24 11:11:19

緩存

1、簡介

查詢 : 連接數據庫,耗資源!

一次查詢的結果,給他暫存在一個可以直接取到的地方!--->內存 : 緩存

我們再次查詢相同數據的時候,直接走緩存,就不用走數據庫了

什么是緩存:

存在內存中的臨時數據 將用戶經常查詢的數據放在緩存(內存)中,用戶去查詢數據就不用從磁盤上(關系型數據庫數據文件)查詢 從緩存中查詢,從而提高查詢效率,解決了高并發系統的性能問題

為什么使用緩存:

減少和數據庫的交互此數,減少系統開銷,提高系統效率 什么樣的數據能使用緩存: 經常查詢并且不經常改變的數據

2、MyBatis緩存

MyBatis包含一個非常強大的查詢緩存特性,它可以非常方便地定制和配置緩存。緩存可以極大的提升查詢效率 MyBatis系統中默認定義了兩級緩存:一級緩存和二級緩存 默認情況下,只有一級緩存開啟。(SqlSession級別的緩存,也稱為本地緩存) 二級緩存需要手動開啟和配置,他是基于namespace級別的緩存 未來提高擴展性,MyBatis定義了緩存接口Cache。我們可以通過實現Cache接口來自定義二級緩存

3、一級緩存

一級緩存也叫本地緩存:SqlSession 與數據同義詞會話期間查詢到的數據會放在本地緩存中 以后如果需要獲取相同的數據,直接從緩存中拿,沒有必要再去查詢數據

測試步驟

開啟日志 測試在一個Session中查詢兩次相同的記錄 查看日志輸出

緩存失效的情況:

查詢不同的東西 增刪改操作,可能會改變原來的數據,所以必定會刷新緩存 查詢不同的Mapper.xml 手動清理緩存

sqlsession.clearCache(); //手動清理緩存

小結:一級緩存默認是開啟的,只在一次SqlSession中有效,也就是拿到連接到關閉連接這個區間段

一級緩存就是一個Map

4、二級緩存

二級緩存也叫全局緩存,一級緩存作用域太低了,所以誕生了二級緩存 基于namespace級別的緩存,一個名稱空間,對應一個二級緩存 工作機制 一個會話查詢一條記錄,這個數據就會被放在當前會話的一級緩存中 如果當前會話關閉了,這個會話對應的一級緩存就沒了;但是我們想要的是,會話關閉了,一級緩存中的數據會被保存到二級緩存中 新的會話查詢信息,就可以從二級緩存中獲取內容 不同的mapper查出的數據會放在自己對應的緩存(map)中

步驟:

開啟全局緩存

<!--顯式的開啟全局緩存--><setting name='cacheEnabled' value='true'/>

在要使用二級緩存的Mapper中開啟

<!--在當前Mapper.xml中使用二級緩存--><cache/>也可以自定義參數<cache eviction='FIFO'flushInterval='60000'size='512'readOnly='true'/>

測試

問題:我們需要將實體類序列化!否則就會報錯

java.io.NotSerializableException: com.rui.pojo.User

小結:

只有開啟了二級緩存,在同一個Mapper下就有效 所有的數據都會先放在一級緩存中 只有當會話提交,或者關閉的時候,才會提交到二級緩存中

5、緩存原理

MyBatis緩存功能原理及實例解析

6、自定義緩存——ehcache

EhCache 是一個純Java的進程內緩存框架,具有快速、精干等特點,是Hibernate中默認的CacheProvider

要在程序中使用ehcache,先要導包

<!-- https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-ehcache --><dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybatis-ehcache</artifactId> <version>1.1.0</version></dependency>

然后在mapper中指定使用ehcache緩存實現

<!--在當前Mapper.xml中使用二級緩存--><cache type='org.mybatis.caches.ehcache.EhcacheCache'/>

導入配置文件 ehcache.xml

<?xml version='1.0' encoding='UTF-8'?><ehcache xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://ehcache.org/ehcache.xsd' updateCheck='false'> <!-- diskStore:為緩存路徑,ehcache分為內存和磁盤兩級,此屬性定義磁盤的緩存位置。參數解釋如下: user.home ? 用戶主目錄 user.dir ? 用戶當前工作目錄 java.io.tmpdir ? 默認臨時文件路徑 --> <diskStore path='java.io.tmpdir/Tmp_EhCache'/> <!-- defaultCache:默認緩存策略,當ehcache找不到定義的緩存時,則使用這個緩存策略。只能定義一個。 --> <!-- name:緩存名稱。 maxElementsInMemory:緩存最大數目 maxElementsOnDisk:硬盤最大緩存個數。 eternal:對象是否永久有效,一但設置了,timeout將不起作用。 overflowToDisk:是否保存到磁盤,當系統當機時 timeToIdleSeconds:設置對象在失效前的允許閑置時間(單位:秒)。僅當eternal=false對象不是永久有效時使用,可選屬性,默認值是0,也就是可閑置時間無窮大。 timeToLiveSeconds:設置對象在失效前允許存活時間(單位:秒)。最大時間介于創建時間和失效時間之間。僅當eternal=false對象不是永久有效時使用,默認是0.,也就是對象存活時間無窮大。 diskPersistent:是否緩存虛擬機重啟期數據 Whether the disk store persists between restarts of the Virtual Machine. The default value is false. diskSpoolBufferSizeMB:這個參數設置DiskStore(磁盤緩存)的緩存區大小。默認是30MB。每個Cache都應該有自己的一個緩沖區。 diskExpiryThreadIntervalSeconds:磁盤失效線程運行時間間隔,默認是120秒。 memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理內存。默認策略是LRU(最近最少使用)。你可以設置為FIFO(先進先出)或是LFU(較少使用)。 clearOnFlush:內存數量最大時是否清除。 memoryStoreEvictionPolicy:可選策略有:LRU(最近最少使用,默認策略)、FIFO(先進先出)、LFU(最少訪問次數)。 FIFO,first in first out,這個是大家最熟的,先進先出。 LFU, Less Frequently Used,就是上面例子中使用的策略,直白一點就是講一直以來最少被使用的。如上面所講,緩存的元素有一個hit屬性,hit值最小的將會被清出緩存。 LRU,Least Recently Used,最近最少使用的,緩存的元素有一個時間戳,當緩存容量滿了,而又需要騰出地方來緩存新的元素的時候,那么現有緩存元素中時間戳離當前時間最遠的元素將被清出緩存。 --> <defaultCache eternal='false' maxElementsInMemory='10000' overflowToDisk='false' diskPersistent='false' timeToIdleSeconds='1800' timeToLiveSeconds='259200' memoryStoreEvictionPolicy='LRU'/> <cache name='cloud_user' eternal='false' maxElementsInMemory='5000' overflowToDisk='false' diskPersistent='false' timeToIdleSeconds='1800' timeToLiveSeconds='1800' memoryStoreEvictionPolicy='LRU'/> </ehcache>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品第十页| 亚洲视频www| 日韩精品三级| 免费在线欧美视频| 日韩精品一二三四| 国产精品免费看| 亚洲精品1区| 免费视频一区三区| 国产色播av在线| 大香伊人久久精品一区二区| 久久久亚洲欧洲日产| 久久99蜜桃| 精品视频在线一区二区在线| 国精品产品一区| 日韩电影二区| 久久中文亚洲字幕| 亚洲一区国产一区| 久久午夜精品一区二区| 三级在线观看一区二区| 天海翼亚洲一区二区三区| 日韩精品免费视频一区二区三区| 日韩精品视频网| 精品中文字幕一区二区三区 | 成人亚洲精品| 美女一区网站| 日韩午夜电影| 日韩精品高清不卡| 国产精品美女午夜爽爽| 久久97视频| 欧美成a人免费观看久久| 欧美 日韩 国产精品免费观看| 国产精品嫩草99av在线| 日本va欧美va精品发布| 国产中文字幕一区二区三区| 精精国产xxxx视频在线播放| 久久精品二区三区| 国产精品视区| 日本在线不卡视频| 欧美国产先锋| 在线日韩av| 亚洲乱码久久| 久久中文字幕导航| 欧美不卡在线| 日韩高清欧美激情| 国产aⅴ精品一区二区三区久久| 久久国产主播| 日韩久久99| 麻豆理论在线观看| 亚洲一卡久久| 免费在线日韩av| 久久久夜精品| 中文字幕免费精品| 精品国产一区二区三区性色av| 天堂网在线观看国产精品| 亚洲日本免费电影| 中文字幕成在线观看| 首页欧美精品中文字幕| 久久精品国产999大香线蕉| 久久人人88| 911亚洲精品| 久久国产电影| 国产欧美日韩免费观看| 国产亚洲一区二区手机在线观看| 亚洲伊人精品酒店| 高清一区二区三区| 一区在线免费| 国产精品探花在线观看| 欧美日韩国产传媒| 国产精品天堂蜜av在线播放| 伊人精品在线| 日韩av有码| 亚洲九九精品| 久久久久网站| 久久精品系列| 一区二区日韩免费看| 高清不卡亚洲| 国产一精品一av一免费爽爽| 婷婷精品视频| 国产精品国码视频| 亚洲专区欧美专区| 久久婷婷国产| 亚洲精品乱码日韩| 99精品小视频| 精品国产鲁一鲁****| 蜜臀av在线播放一区二区三区| 日韩在线二区| 国产日韩欧美高清免费| 红桃视频国产精品| 国产粉嫩在线观看| 日本不卡高清视频| 在线一区免费观看| 亚洲精品在线影院| 国产精品v一区二区三区| 国产精品呻吟| 国产一区亚洲| 国产精品白丝久久av网站| 亚洲一区二区三区久久久| 在线日韩一区| 色综合狠狠操| 国产精品a级| 91精品尤物| 老色鬼久久亚洲一区二区| 精品三级久久| 福利一区和二区| 国产经典一区| 日本午夜精品一区二区三区电影 | 国产综合色区在线观看| 国产欧美一区二区三区国产幕精品| 亚洲专区一区| 欧美日韩在线网站| 日韩国产激情| 欧美少妇精品| 国产aa精品| 久久香蕉网站| 麻豆中文一区二区| 国产精品22p| 欧美激情综合| 麻豆精品久久久| 国产经典一区| 久久99久久人婷婷精品综合| 日韩av三区| 视频一区日韩精品| 美女久久一区| 视频一区在线播放| 99综合视频| 韩日一区二区三区| 亚洲成人三区| 国产麻豆综合| 日韩影院精彩在线| 日韩精品一二三区| 亚洲精品影视| 日韩精品一区二区三区中文| 日韩亚洲精品在线观看| 欧美天堂一区| 国产精品xxx在线观看| 免费在线观看一区| 国产精品草草| 中文在线免费视频| 国产亚洲一区二区手机在线观看| 日本久久成人网| 国产字幕视频一区二区| 亚洲激情黄色| 婷婷亚洲成人| 国产精品一区高清| 国模大尺度视频一区二区| 日韩精品dvd| 精品1区2区3区4区| 综合激情一区| 国产欧美二区| 成人在线黄色| 久久青草久久| 亚洲二区三区不卡| 首页国产欧美日韩丝袜| 日本欧美一区| 九九久久国产| 99久久久久国产精品| 天使萌一区二区三区免费观看| 日本vs亚洲vs韩国一区三区二区| 国产精品亚洲二区| 91一区二区| 99国产精品久久久久久久成人热 | 国产精品白浆| 日韩中文视频| 黄色日韩在线| 欧美专区一区| 日本а中文在线天堂| 亚洲欧美日韩高清在线| 亚洲精品无吗| 精品视频在线观看网站| 日韩欧美视频专区| 在线精品视频在线观看高清| 91亚洲精品视频在线观看| 精品美女在线视频| 国产精品13p| 亚洲婷婷在线| 日韩国产在线观看一区| 国产a亚洲精品| 久久精品99久久无色码中文字幕| 天使萌一区二区三区免费观看| 蜜桃伊人久久| 麻豆极品一区二区三区| 日韩亚洲一区在线| 欧美天堂亚洲电影院在线观看| 欧美日韩中出| 成人国产精品久久| 蜜臀91精品一区二区三区| 精品亚洲精品| 狠狠色狠狠色综合日日tαg| 久久av免费| 亚洲一本视频| 欧美成人aaa| 在线天堂中文资源最新版| 性色一区二区| 精品午夜视频| 一区在线视频观看| 狠狠久久伊人中文字幕| 在线精品视频在线观看高清| 免费在线观看一区| 蜜桃久久久久久久| 国内自拍视频一区二区三区|