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

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

SpringBoot+SpringCache實現(xiàn)兩級緩存(Redis+Caffeine)

瀏覽:102日期:2023-03-14 08:33:03
1. 緩存、兩級緩存1.1 內容說明

Spring cache:主要包含spring cache定義的接口方法說明和注解中的屬性說明springboot+spring cache:rediscache實現(xiàn)中的缺陷caffeine簡介spring boot+spring cache實現(xiàn)兩級緩存

使用緩存時的流程圖

SpringBoot+SpringCache實現(xiàn)兩級緩存(Redis+Caffeine)

1.2 Sping Cache

spring cache是spring-context包中提供的基于注解方式使用的緩存組件,定義了一些標準接口,通過實現(xiàn)這些接口,就可以通過在方法上增加注解來實現(xiàn)緩存。這樣就能夠避免緩存代碼與業(yè)務處理耦合在一起的問題。spring cache的實現(xiàn)是使用spring aop中對方法切面(MethodInterceptor)封裝的擴展,當然spring aop也是基于Aspect來實現(xiàn)的。spring cache核心的接口就兩個:Cache和CacheManager

1.2.1 Cache接口

提供緩存的具體操作,比如緩存的放入,讀取,清理,spring框架中默認提供的實現(xiàn)有

SpringBoot+SpringCache實現(xiàn)兩級緩存(Redis+Caffeine)

1.2.2 CacheManager接口

主要提供Cache實現(xiàn)bean的創(chuàng)建,每個應用里可以通過cacheName來對Cache進行隔離,每個CaheName對應一個Cache實現(xiàn),spring框架中默認提供的實現(xiàn)與Cache的實現(xiàn)都是成對出現(xiàn)的

1.2.3 常用的注解說明

@Cacheable:主要應用到查詢數(shù)據(jù)的方法上 @CacheEvict:清除緩存,主要應用到刪除數(shù)據(jù)的方法上 @CachePut:放入緩存,主要用到對數(shù)據(jù)有更新的方法上 @Caching:用于在一個方法上配置多種注解 @EnableCaching:啟用spring cache緩存,作為總的開關,在spring boot的啟動類或配置類上需要加入次注解才會生效 2.實戰(zhàn)多級緩存的用法

package com.xfgg.demo.config;import lombok.AllArgsConstructor;import com.github.benmanes.caffeine.cache.Caffeine;import org.springframework.cache.CacheManager;import org.springframework.cache.caffeine.CaffeineCacheManager;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.concurrent.TimeUnit;@Configuration@AllArgsConstructor//把定義的緩存加入到Caffeine中public class CacheConfig { @Bean public CacheManager cacheManager(){CaffeineCacheManager cacheManager = new CaffeineCacheManager();cacheManager.setCaffeine(Caffeine.newBuilder()//使用refreshAfterWrite必須要設置cacheLoader//在5分鐘內沒有創(chuàng)建/覆蓋時,會移除該key,下次取的時候從loading中取【重點:失效、移除Key、失效后需要獲取新值】.expireAfterWrite(5, TimeUnit.MINUTES)//初始容量.initialCapacity(10)//用來控制cache的最大緩存數(shù)量.maximumSize(150));return cacheManager; }}

package com.xfgg.demo.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.connection.RedisPassword;import org.springframework.data.redis.connection.RedisStandaloneConfiguration;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.StringRedisSerializer;//生成的redis連接public class RedisConfig<GenericObjectPoolConfig> { @Value('${spring.redis1.host}') private String host; @Value('${spring.redis1.port}') private Integer port; @Value('${spring.redis1.password}') private String password; @Value('${spring.redis1.database}') private Integer database; @Value('${spring.redis1.lettuce.pool.max-active}') private Integer maxActive; @Value('${spring.redis1.lettuce.pool.max-idle}') private Integer maxIdle; @Value('${spring.redis1.lettuce.pool.max-wait}') private Long maxWait; @Value('${spring.redis1.lettuce.pool.min-idle}') private Integer minIdle; @Bean public RedisStandaloneConfiguration redis1RedisConfig() {RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();config.setHostName(host);config.setPassword(RedisPassword.of(password));config.setPort(port);config.setDatabase(database);return config; } //配置序列化器 @Bean public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){RedisTemplate<String,Object>template=new RedisTemplate<>();//關聯(lián)template.setConnectionFactory(factory);//設置key的序列化器template.setKeySerializer(new StringRedisSerializer());//設置value的序列化器template.setValueSerializer(new StringRedisSerializer());return template; }}

一個使用cacheable注解,一個使用redistemplate進行緩存因為公司項目中用到的是jedis和jediscluster所以這里只是做個了解,沒有寫的很細

到此這篇關于SpringBoot+SpringCache實現(xiàn)兩級緩存(Redis+Caffeine)的文章就介紹到這了,更多相關SpringBoot SpringCache兩級緩存內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關文章:
主站蜘蛛池模板: 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 学习虾-免费的学习资料下载平台 雪花制冰机(实验室雪花制冰机)百科 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 圆窗水平仪|伊莉莎冈特elesa+ganter| 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械| 中国品牌排名投票_十大品牌榜单_中国著名品牌【中国品牌榜】 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 |