1.引依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency>
2.在yml中设置缓存过期时间
spring: cache: redis: time-to-live: 1800000 #设置缓存数据的过期时间
3.注解使用
3.1 启动类 @EnableCaching注解,开启缓存
3.2 相关查询接口上,配置@Cacheable注解,将得到的数据以key(id)-value的形式存入缓存
3.3 相关删除接口上,配置@CacheEvict(value = "setmealCache",allEntries = true) //清除setmealCache名称下,所有的缓存数据
4.注意事项:
0. Spring Cache只是提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。
1.@CachePut 说明:作用: 将方法返回值,放入缓存
@CacheEvict 说明:作用: 清理指定缓存
@Cacheable 说明: 作用: 在方法执行前,spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中
2.@Cacheable 会将方法的返回值R缓存在Redis中,而在Redis中存储对象,该对象是需要被序列化的,而对象要想被成功的序列化,就必须得实现 Serializable 接口。
3.为了保证数据库中数据与缓存数据的一致性,在我们添加套餐或者删除套餐数据之后,需要清空当前套餐缓存的全部数据。