使用本地redis服务为例。
0、依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.0.6.RELEASE</version>
</dependency>
1、在springBoot启动类上增加支持缓存注解:
@EnableCaching
2、在需要存入到redis的数据的方法上,增加存入注解:(同样可以加在server或者mapper的接口上,但是spring不推荐这样做。原因很明显,如果有多个方法实现了这个接口,无法确保每个实现方法都有redis参与的需要。)
@Cacheable(value = "getUserNameById")
@Override
public String getUserNameById(Integer id) {
System.err.println("数据库");
return myMapper.getUserNameById(id);
}
@Cacheable注解的value值,为存入redis的数据指定名称。有文章或说,还需要指定key=“#p0”,为传入值设定名称,其实这个注解写不写都可以,不写,也是默认这样做得。在redis存储的键值形式是:(如果id是2)“getUserNameById::2”
3、在需要删除redis对应键值的数据的方法上,增加删除注解:
@CacheEvict(value = "getUserNameById", allEntries = true)
@Override
public String updateRedis(Integer id) {
return "清空redis";
}
@CacheEvict注解的value值,指定要删除得redis数据的名称。同时需要将allEntries属性指定为true。这点相当于是该注解要求我们二次确认的一种方式。
测试即可。