1.Spring Cache简介
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单的添加一个注解,就可以实现缓存功能
Spring Cache提供了一层抽象,底层可以切换不同的Cache来实现。具体就是通过CacheManager接口来统一不同的缓存技术
CacheManager是Spring提供的各种缓存技术的抽象接口
针对不同的缓存技术需要实现不同的CacheManager:
用法
@CachePut写在保存方法上存入缓存,我们希望在该用户信息保存到数据库的同时,也往缓存中缓存一份数据,我们可以在save方法上加上注解 @CachePut
@CacheEvict 在修改和删除方法上加,防止用了缓存前后端数据不同步,在更新和删除数据库之后,数据库的数据已经发生了变更,我们需要将缓存中对应的数据删除掉,避免出现数据库数据与缓存数据不一致的情况。
@Cacheable 在查询方法上加,在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中
改造DishController的list方法,先从Redis中获取分类对应的菜品数据,如果有则直接返回,无需查询数据库;如果没有则查询数据库,并将查询到的菜品数据存入Redis。
2.Spring Cache常用注解
3.在SpringBoot项目中使用Spring Cache的操作步骤(使用redis缓存技术)
导入坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
修改配置文件
在启动类上加入@EnableCaching
开启spring cache注解方式的缓存
在方法上使用,返回的类要实现序列化接口®
allEntries = true:删除所有
注意:
在使用缓存过程中,要注意保证数据库中的数据和缓存中的数据一致,如果数据库中的数据发生变化,需要及时清理缓存数据。否则就会造成缓存数据与数据库数据不一致的情况。