电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

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

Hibernate三級緩存機制簡介:

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

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

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

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

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

Redis:作為獨立的緩存中間件,在分布式緩存系統(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

啟動類注解

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

@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)識方法是否執(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)記在一個方法上,也可以標(biāo)記在一個類上,標(biāo)記在一個方法上表示該方法支持緩存,該方法被調(diào)用后將其返回值緩存起來,下次同樣的請求參數(shù)執(zhí)行該方法時可以直接從緩存中獲取結(jié)果,而不需要再次執(zhí)行該方法。

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

四、源代碼地址

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

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

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 澳洁干洗店加盟-洗衣店干洗连锁「澳洁干洗免费一对一贴心服务」 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 首页-浙江橙树网络技术有限公司 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 上海质量认证办理中心| 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器| 清水-铝合金-建筑模板厂家-木模板价格-铝模板生产「五棵松」品牌 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | VI设计-LOGO设计公司-品牌设计公司-包装设计公司-导视设计-杭州易象设计 | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 进口消泡剂-道康宁消泡剂-陶氏消泡剂-大洋消泡剂 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 |