文章目录
- 一,168-缓存-SpringCache-整合&体验@Cacheable
- 1,引入Spring Cache依赖
- 2,配置
- 3,启用cache
- 4,在查询数据库的方法上加上注解@Cacheable
- 5,测试
- 二,169-缓存-SpringCache-@Cacheable细节设置
- 1,@Cacheable的默认行为
- 1.1 设置缓存的key
- 1.2 设置缓存的过期时间
- 1.3 验证
这一节的主要内容是整合Spring Cache。
一,168-缓存-SpringCache-整合&体验@Cacheable
1,引入Spring Cache依赖
引入Spring Cache依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
注意,因为我们要使用redis作为缓存,所以还要引入redis的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2,配置
在配置文件中配置cache.type。
spring.cache.type=redis
这个配置表示我们会使用redis作为缓存。
3,启用cache
在启动类上加上如下注解。
@EnableCaching
4,在查询数据库的方法上加上注解@Cacheable
5,测试
在浏览器中输入"localhost:10000",第一次访问时后台接口会查询数据库,查询结果返回的同时写入redis缓存。
后台打印了方法中的日志,说明查询了DB。
在redis中可以看到有如下key,Spring Cache默认生成的可以的规范是:
缓存的名字::SimpleKey::[]
因为我们在注解中设置的缓存分区名称是category,所以默认生成的key的名称是:category::SimpleKey [ ]
。
虽然,我们并没有在代码中将查询结果存入redis中,但是在Spring Cache的支持下,方便快捷的实现了这一结果,使得代码简洁易读、更容易维护。
二,169-缓存-SpringCache-@Cacheable细节设置
1,@Cacheable的默认行为
显然,有些配置需要修改,比如:
- 缓存的key
- 缓存value的序列化方式
- 缓存的过期时间。
1.1 设置缓存的key
如下,通过Cacheable注解的属性key来进行设置,注意key中的值会被当做Spel注解进行解析,如果是字符串,需要用单引号包裹。
@Cacheable(value = {"category"}, key = "'Level1Categorys'")
1.2 设置缓存的过期时间
过期时间需要在配置文件中配置,单位是毫秒,下面配置过期时间是一个小时。
spring.cache.redis.time-to-live: 3600000
1.3 验证
重新访问localhost:10000,查看redis,可以看见如下key。
查看这个key的过期时间,存活时间还剩3423秒,说明我们的配置已经生效。