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

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

Spring Cache整合Redis實現方法詳解

瀏覽:72日期:2023-08-20 18:33:21

導入依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>

基本配置

spring.redis.port=6380spring.redis.host=192.168.66.128

spring.cache.cache-names=c1 //給緩存取了一個名字

在啟動類上添加注解,表示開啟緩存

完成了這些配置之后,Spring Boot就會自動幫

@SpringBootApplication@EnableCachingpublic class RediscacheApplication { public static void main(String[] args) { SpringApplication.run(RediscacheApplication.class, args); }}

我們在后臺配置一個RedisCacheManager,相關的配置是在org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration類中完成的。部分源碼如下:

@Configuration@ConditionalOnClass(RedisConnectionFactory.class)@AutoConfigureAfter(RedisAutoConfiguration.class)@ConditionalOnBean(RedisConnectionFactory.class)@ConditionalOnMissingBean(CacheManager.class)@Conditional(CacheCondition.class)class RedisCacheConfiguration {@Beanpublic RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory,ResourceLoader resourceLoader) {RedisCacheManagerBuilder builder = RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(determineConfiguration(resourceLoader.getClassLoader()));List<String> cacheNames = this.cacheProperties.getCacheNames();if (!cacheNames.isEmpty()) {builder.initialCacheNames(new LinkedHashSet<>(cacheNames));}return this.customizerInvoker.customize(builder.build());}}

系統會自動提供一個RedisCacheManger的Bean,RedisCacheManager間接實現了Spring中的Cache接口,有了這個Bean,我們就可以直接使用Spring中的緩存注解和接口了,而緩存數據則會被自動存儲到Redis上。

在單機的Redis中,這個Bean系統會自動提供,如果是Redis集群,這個Bean需要開發者來提供

緩存使用@CachaConfig

這個注解在類上使用,用來描述該類中所有方法使用的緩存名稱,當然也可以不使用該注解,直接在具體的緩存注解上配置名稱,示例代碼如下:

@Service@CacheConfig(cacheNames = 'c1')public class UserService {}

@Cacheable

這個注解一般加載查詢方法上,表示將一個方法的返回值緩存起來,默認情況下,緩存的key就是方法的參數,緩存的value就是方法的返回值,示例代碼如下:

@Cacheable(key = '#id')public User getUserById(Integer id,String username) { System.out.println('getUserById'); return getUserFromDBById(id);}

當有多個參數時,默認就使用多個參數來做key,如果只需要其中某一個參數做key,則可以在@Cacheable注解中,通過key屬性來指定key,如上代碼就表示只使用id作為緩存的key,如果對key有復雜的要求,可以自定義keyGenerator。當然,Spring Cache中提供了root對象,可以在不定義keyGenerator的情況下實現一些復雜的效果:

Spring Cache整合Redis實現方法詳解

@CachePut

這個注解一般加在更新方法上,當數據庫中的數據更新后,緩存中的數據也要跟著更新,使用該注解,可以將方法的返回值自動更新到已經存在的key上,示例代碼如下:

@CachePut(key = '#user.id')public User updateUserById(User user) { return user;}

@CacheEvict

這個注解一般加在刪除方法上,當數據庫中的數據刪除后,相關的緩存數據也要自動清除,該注解在使用的時候也可以配置按照某種條件刪除(condition屬性)或者或者配置清除所有緩存(allEntries屬性),示例代碼如下:

@CacheEvict()public void deleteUserById(Integer id) { //在這里執行刪除操作, 刪除是去數據庫中刪除}

總結

在SpringBoot中,使用Redis緩存,既可以使用RedisTemplate自己來實現,也可以使用使用這種方式,這種方式是SpringCache提供的統一接口,實現既可以是Redis,也可以是Ehcache或者其他支持這種規范的緩存框架。從這個角度來說,SpringCache和Redis、Ehcache的關系就像JDBC與各種數據庫驅動的關系。

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

標簽: Spring
相關文章:
主站蜘蛛池模板: 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 冷水机-工业冷水机-冷水机组-欧科隆品牌保障 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | 上海赞永| 蒸汽吸附分析仪-进口水分活度仪|康宝百科 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 世纪豪门官网 世纪豪门集成吊顶加盟电话 世纪豪门售后电话 | 818手游网_提供当下热门APP手游_最新手机游戏下载 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 100国际学校招生 - 专业国际学校择校升学规划 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 天津云仓-天津仓储物流-天津云仓一件代发-顺东云仓 | 环比机械 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 菏泽知彼网络科技有限公司 | 致胜管家软件服务【在线免费体验】 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 淘剧影院_海量最新电视剧,免费高清电影随心观看 | 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 |