Spring Boot第6章缓存管理

本文详细介绍了Spring Boot的缓存管理,包括如何通过@EnableCaching启用缓存支持,@Cacheable、@CachePut和@CacheEvict注解的使用。还探讨了Spring Boot整合Redis作为缓存实现,以及自定义Redis缓存序列化机制的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.1 Spring Boot默认缓存管理

管理缓存的核心:是将缓存应用于操作数据的方法中,从而减少操作数据的次数,同时不会对程序本身造成任何干扰

Spring Boot通过使用@EnableCaching注解开启基于注解的缓存支持,可以启动缓存管理的自动化配置

使用缓存的主要目的:是减小数据库数据访问压力,提高用户体验

6.2 Spring Boot缓存注解介绍

1.@EnableCaching注解:用于开启基于注解的缓存支持

2.@Cacheable注解:用于对方法的查询结构进行缓存存储,可以作用于类或方法(通常用在数据查询方法上)

@Cacheable注解执行顺序:先进行缓存查询,如果为空则进行方法查询,并将结果进行缓存;如果缓存中没有数据,不进行方法查询,而是直接使用缓存数据

@Cacheable注解提供多个属性:用于对缓存存储进行相关配置

@Cacheable注解属性推荐文章:https://www.cnblogs.com/cocoxu1992/p/10676700.html

3.@CachPut注解:用于更新缓存数据,可以作用于类或方法(通常用在数据更新方法上)

4.@CacheEvict注解:用于删除缓存数据,可以作用于类或方法(通常用在数据删除方法上)

(1)allEntries属性:表示是否清除指定缓存空间中的所有缓存数据,默认为false(即默认只删除指定key对应的缓存数据)

(2)beforelnvocation属性:表示是否在方法执行之前进行缓存清除,默认值为false(即默认在执行方法后在进行缓存清除)

5.Caching注解:用于处理复杂规律的数据缓存

6.CachConfig注解:用于统筹管理类中所有使用@Cacheable,@CachPut和@CacheEvict注解标注的方法中的公共属性

6.3 Spring Boot整合Redis缓存实现

Spring Boot默认的缓存管理组件:Simple缓存组件

(1)基于注解的Redis缓存实现

(2)基于API的Redis缓存实现

相对于注解的方式,使用Redis API进行数据缓存管理更加灵活。相比使用注解的方式,使用Redis API的方式编写的代码量可能会更多

6.4 自定义Redis缓存序列化机制

1.自定义RedisTemplate

(1)Redis API默认序列化机制

两个重要结论:

1)使用RedisTemplate对Redis数据进行缓存操作时,内部使用JdkSerializationRedisSerializer序列化方式要求被序列化的实体类继承Serializable接口

2)使用RedisTemplate时,如果没有特殊的设置,key和value的各种序列化类型都是RedisSerializable

RedisTemplate是一个Redis序列化接口。默认有6个实现类,这6个实现类代表了6种不同的数据序列化方式

(2)自定义RedisTemplate序列化机制

2.自定义RedisCacheManager

(1)Redis注解默认序列化机制

(2)自定义RedisCacheManager

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值