基于springboot项目
介绍:Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。
Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:
EHCache
Caffeine
Redis
springCache的使用:
1.maven坐标引入
<!--SpringDataRedis起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--springCache框架依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
2.使用注解开发
常用注解
注解 | 说明 |
@EnableCaching | 开启缓存注解功能,通常加在启动类上 |
@Cacheable | 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中 |
@CachePut | 将方法的返回值放到缓存中 |
@CacheEvict | 将一条或多条数据从缓存中删除 |
- @EnableCaching
- @Cacheable cacheNames缓存名称,key写前端传来的参数,加#可以动态绑定
再调用此接口方法之前后前去redis缓存里面查询时候有这个key,如果有则直接使用redis,如果没有则调用此方法操作数据库查询完数据后再将数据存入redis
成功生成后在redis中会是下面的形式
- @CachePut(cacheNames="",key="")
与@Cacheable方法使用相同,但不会在方法执行前先查询缓存中是否有数据,一般在查询完数据库后直接将数据放入缓存内
-
@CacheEvict 两种方式,一种是精确删除缓存,一种是删除所有缓存
精确删除缓存:例如在进行对分类菜品进行新增的时候可以根据菜品的id来删除相关联的所有菜品
,再次查询该菜品id相关联的菜品时,需再次查询数据库将数据放到redis中,实现数据的一致性
删除全部缓存:例如修改该菜品的某些属性时,可采用删除该菜品下所有缓存,重新查询时再将查询到的数据放到redis里面实现数据的一致性