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