mybatis二級(jí)緩存
- 1.mybatis的一級(jí)緩存sqlsession
- 2.二級(jí)緩存指的同一命名空間(namespace) mapper
mybatis默認(rèn)二級(jí)緩存未開啟。內(nèi)置是支持二級(jí)緩存的。但是由于本身是數(shù)據(jù)庫管理組件褪储,所以緩存并不好用,還要用第三方绞佩。典型ehcache总放。
二級(jí)緩存的常見算法倘核。
緩存算法有:
LRU(Least Recently Used):這種算法是在每個(gè)對(duì)象中維護(hù)一個(gè)訪問的時(shí)間變量陕见,每次訪問后秘血,時(shí)間都會(huì)更新,當(dāng)新的對(duì)象需要存放到緩存時(shí)评甜,替換那個(gè)按時(shí)間排序最后的對(duì)象灰粮。
LFU(Least Frequently Used):這種算法是每個(gè)對(duì)象記錄了對(duì)象訪問的次數(shù)(即命中率),當(dāng)新的對(duì)象需要存放到緩存時(shí)忍坷,替換那個(gè)訪問次數(shù)最少的對(duì)象粘舟。
FIFO(First In First Out):這種算法是將緩存中的對(duì)象存放成一個(gè)數(shù)組,當(dāng)新的對(duì)象需要存放到內(nèi)存中是佩研,替換最先存放到緩存的對(duì)象柑肴。
mybatis中開啟二級(jí)緩存
1.對(duì)象要實(shí)現(xiàn)序列化接口Serializable
2.在mapper映射文件添加
<!-- 開啟二級(jí)緩存 -->
<cache/>
3.在mabaits配置文件中開啟二級(jí)緩存
<!-- 設(shè)置啟動(dòng)二級(jí)緩存 -->
<setting name="cacheEnabled" value="true"/>
與ehcache集成
1.導(dǎo)入jar包
2.生成ehcache.xml配置文件
3.setting中開啟二級(jí)緩存
4.在mapper文件中指定cache類型為ehcache
<!-- 開啟二級(jí)緩存 -->
<cache type="org.mybatis.caches.ehcache.EhcacheCache" ></cache>