亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot2整合Ehcache組件實(shí)現(xiàn)輕量級(jí)緩存管理

瀏覽:89日期:2023-03-03 14:36:03
目錄一、Ehcache緩存簡(jiǎn)介Hibernate緩存EhCache緩存特點(diǎn)對(duì)比Redis緩存二、集成SpringBoot框架1、核心依賴2、加載配置3、配置詳解三、注解用法四、源代碼地址一、Ehcache緩存簡(jiǎn)介Hibernate緩存

Hibernate三級(jí)緩存機(jī)制簡(jiǎn)介:

一級(jí)緩存:基于Session級(jí)別分配一塊緩存空間,緩存訪問的對(duì)象信息。Session關(guān)閉后會(huì)自動(dòng)清除緩存。

二級(jí)緩存:是SessionFactory對(duì)象緩存,可以被創(chuàng)建出的多個(gè) Session 對(duì)象共享,二級(jí)緩存默認(rèn)是關(guān)閉的,如果要使用需要手動(dòng)開啟,并且依賴EhCache組件。

三級(jí)緩存:查詢緩存,配置開啟該緩存的情況下,重復(fù)使用一個(gè)sql查詢某個(gè)范圍內(nèi)的數(shù)據(jù),會(huì)進(jìn)行緩存。

EhCache緩存特點(diǎn) 快速,簡(jiǎn)單,并且提供多種緩存策略; 緩存數(shù)據(jù)有兩級(jí):內(nèi)存和磁盤,無需擔(dān)心容量問題; 緩存數(shù)據(jù)會(huì)在虛擬機(jī)重啟的過程中寫入磁盤; 可以通過RMI、可插入API等方式進(jìn)行分布式緩存; 具有緩存和緩存管理器的偵聽接口; 支持多緩存管理器實(shí)例,以及一個(gè)實(shí)例的多個(gè)緩存區(qū)域; 提供Hibernate的緩存實(shí)現(xiàn);對(duì)比Redis緩存

Ehcache:直接在Jvm虛擬機(jī)中緩存,速度快,效率高,不適合處理大規(guī)模緩存數(shù)據(jù),在分布式環(huán)境下,緩存數(shù)據(jù)共享操作復(fù)雜;

Redis:作為獨(dú)立的緩存中間件,在分布式緩存系統(tǒng)中非常好用,緩存數(shù)據(jù)共享,有效支撐大量數(shù)據(jù)緩存,支持哨兵模式,或者集群模式的高可用成熟方案;

二、集成SpringBoot框架1、核心依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency><dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId></dependency>2、加載配置

基礎(chǔ)配置

spring: cache: ehcache: config: classpath:ehcache.xml

啟動(dòng)類注解

@EnableCaching@SpringBootApplicationpublic class Application { public static void main(String[] args) {SpringApplication.run(Application.class,args) ; }}3、配置詳解

<ehcache xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='../config/ehcache.xsd'> <!-- 操作系統(tǒng)緩存的臨時(shí)目錄,內(nèi)存滿后寫入該目錄 --> <diskStore path='java.io.tmpdir'/> <defaultCache maxElementsInMemory='1000' eternal='false' timeToIdleSeconds='120' timeToLiveSeconds='120' maxElementsOnDisk='10000000' diskExpiryThreadIntervalSeconds='120' memoryStoreEvictionPolicy='LRU'><persistence strategy='localTempSwap'/> </defaultCache> <cache name='userEntity' maxElementsInMemory='1000' eternal='false' timeToIdleSeconds='120' timeToLiveSeconds='120' maxElementsOnDisk='10000000' diskExpiryThreadIntervalSeconds='120' memoryStoreEvictionPolicy='LRU'><persistence strategy='localTempSwap'/> </cache></ehcache>

配置參數(shù)說明

maxElementsOnDisk:磁盤緩存中最多可以存放的元素?cái)?shù)量; eternal:緩存中對(duì)象是否永久有效; timeToIdleSeconds:當(dāng)eternal=false時(shí)使用,緩存數(shù)據(jù)有效期(單位:秒),時(shí)間段內(nèi)沒有訪問該元素,將被清除; timeToLiveSeconds:緩存數(shù)據(jù)的存活時(shí)間; maxElementsInMemory:內(nèi)存中最多可以存放的元素?cái)?shù)量,overflowToDisk=true,則會(huì)將Cache中多出的元素放入磁盤文件中,若overflowToDisk=false,則根據(jù)memoryStoreEvictionPolicy策略替換Cache中原有的元素; diskExpiryThreadIntervalSeconds:磁盤緩存的清理線程運(yùn)行間隔; memoryStoreEvictionPolicy:緩存釋放策略,LRU會(huì)優(yōu)先清理最少使用的緩存; localTempSwap:持久化策略,當(dāng)堆內(nèi)存或者非堆內(nèi)存里面的元素已經(jīng)滿了的時(shí)候,將其中的元素臨時(shí)的存放在磁盤上,重啟后就會(huì)消失;三、注解用法

@Servicepublic class CacheService { private static final Logger LOGGER = LoggerFactory.getLogger(CacheService.class); @Resource private UserMapper userMapper ; @Cacheable(value='userEntity') // 在緩存有效期內(nèi),首次查詢才訪問數(shù)據(jù)庫 public UserEntity getById (Integer id){// 通過日志,標(biāo)識(shí)方法是否執(zhí)行LOGGER.info('getById...'+id);return userMapper.selectById(id) ; } @CacheEvict(value='userEntity',key = '#id') //該ID數(shù)據(jù)更新,清空該ID緩存 public void updateUser(Integer id) {UserEntity user = new UserEntity() ;user.setId(id);user.setUserName('myCache');userMapper.updateById(user); }}

@Cacheable:注解標(biāo)記在一個(gè)方法上,也可以標(biāo)記在一個(gè)類上,標(biāo)記在一個(gè)方法上表示該方法支持緩存,該方法被調(diào)用后將其返回值緩存起來,下次同樣的請(qǐng)求參數(shù)執(zhí)行該方法時(shí)可以直接從緩存中獲取結(jié)果,而不需要再次執(zhí)行該方法。

@CacheEvict:注解標(biāo)記在需要清除緩存元素的方法或類上的,當(dāng)標(biāo)記在一個(gè)類上時(shí)表示其中所有的方法的執(zhí)行都會(huì)觸發(fā)緩存的清除操作,并且可以按照指定屬性清除。

四、源代碼地址

GitHub·地址https://github.com/cicadasmile/middle-ware-parentGitEE·地址https://gitee.com/cicadasmile/middle-ware-parent

以上就是SpringBoot2整合Ehcache組件實(shí)現(xiàn)輕量級(jí)緩存管理的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot2 整合Ehcache組件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧美精品国产制服第一页 | 免费观看欧美一级特黄 | 国产男女乱淫真视频全程播放 | 小明永久免费看aⅴ片 | 精品中文字幕在线观看 | 欧美特黄一级aa毛片 | 国产高清www免费视频 | 成人毛片18岁女人毛片免费看 | 国产一级大片免费看 | 午夜撸 | 亚洲色图视频在线观看 | 成人免费短视频 | 亚洲狠狠婷婷综合久久蜜桃 | 国产成人精品综合久久久 | 在线成人综合色一区 | 在线成人免费看大片 | 国自产拍在线天天更新2019 | 免费看日韩 | 青青青国产免费手机视频在线观看 | 色两性网欧美 | 亚洲性色综合图区图片 | 亚洲国产人久久久成人精品网站 | 无码精品一区二区三区免费视频 | 国语自产自拍秒拍在线视频 | 久久97超级碰碰碰 | 免费一级a毛片在线 | 亚洲成人免费网址 | 千百橹最新亚洲地址在线播放 | 东北普通话清晰对白 | 五月婷婷久 | 婷婷色综合久久 | 国产一区欧美 | 高清中文字幕在线 | 日韩欧美国产精品 | 日韩黄色片在线观看 | 欧美日韩不卡视频一区二区三区 | 亚洲成人午夜影院 | 午夜成年女人毛片免费观看 | 午夜亚洲一区 | 久久精品大片 | 亚洲综合区小说区激情区噜噜 |