缓存

2.2 使用 Redis 缓存
注意:@Cacheable / @CachePut /@CacheEvict 注解需使用在 public 修饰的方法上

2.2.2 缓存注解使用
@Cacheable

@Cacheable(value = "test", key = "#msg")
public String put(String msg) {
     
    return msg;
}

使用 @Cacheable 注解,会以 value::key 的形式作为 key,将方法的返回值做为 value,进行缓存。例如示例中传入的参数 msg 为 “ABC”,则 Redis 缓存中对应的 key-value 为 test::ABC - ABC.

若在其它方法中需要从缓存中获取对应的数据信息,可以通过以下方式获取:

@Autowired
private StringRedisTemplate stringRedisTemplate;

String value= stringRedisTemplate.opsForValue().get(key); // 如 test:ABC

如果存在多个参数,且要求多个参数同时做为key 时,参考如下配置,此时只有 id,name,age 同时一致时,才会从 Redis 获取数据

@Cacheable(value = "test", key = "#id + #name + #age")
public String testCache(String id, String name, String age) {
    System.out.println("对数据 【" + id + name + age + "】 执行本地缓存");
    return "nativeCache" + id + name + age;
}

@CacheaPut
使用该注解,则不会从缓存中获取对应的数据,而是每次都执行相应的代码,并将执行结果存入指定的缓存。

@CacheaEvict
使用该注解,会清除对应的缓存信息。

注:这里只是简单的描述了使用方法,更加详细的使用方法,可以自行百度。