1.简介
1. 基于注解,代码清爽简洁
2. 可以对缓存进行[回滚](https://so.csdn.net/so/search?q=%E5%9B%9E%E6%BB%9A&spm=1001.2101.3001.7020 "回滚")
3. 基于注解也可以实现复杂的逻辑
4. 基于具体的缓存产品(如Guava、EhCache、Redis等)的共性进行了一层封装
2.相关配置
1.导入依赖
<!-- Spring Cache的引入-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.application.yml配置
spring:
redis:
# redis 的 IP 地址
host: hadoop128
# redis的端口
port: 6379
# redis的登录密码
password: czx123
# 使用redis的数据库0
database: 0
# spring cache的使用
cache:
# 指定使用的缓存类型
type: redis
#设置过期时间
redis:
time-to-live: 1800000
3.相关注解
@CacheEvict 删除缓存,一般配置在删除,更新,新增方法上面(可以加allEntries=true删除value下所有key)
@Cacheable 应用到读取数据的方法上,即可缓存的方法,如查找方法:先从缓存中读取,如果没有再调用方法获取数据,然后把数据添加到缓存中
@EnableCaching 开启 SpringCache 的默认配置
@CacheConfig 全局Cache配置
@CachePut 将数据放到缓存中,不考虑缓存中有没有,可用于更新或新增方法上
设置不同缓存失效时间:spring cache配置多失效时间_LOOPY_Y的博客-
CSDN博客_spring缓存设置失效时间
参考:Spring Cache的详细使用(Redis)_czxboys的博客-
CSDN博客
@CacheEvict 清除多个key的实现方式:https://www.jb51.net/article/205758.htm