在SpringBoot中,我们可以使用@CacheEvict注解轻松的实现对key缓存的清理,但是我们如果需要同时删除多个key的缓存该如何实现呢?
SpringBoot给我们提供了一个@Caching的注解,这个注解的代码如下:
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Caching {
Cacheable[] cacheable() default {};
CachePut[] put() default {};
CacheEvict[] evict() default {};
}
从代码可以看出,这个注解相当于@Cacheable,@CachePut,@CacheEvict这三个注解的一个大集合,而且都是数组的形式。所以为了实现我们的需求,我们可以这样写:
@Caching(
evict={
@CacheEvict(cacheNames = "test",key = "#key"),
@CacheEvict(cacheNames = "test",key = "#key+'1'")
}
)
public void cacheEvict(String key) {
}
上述代码即可实现同时删除key和key1的缓存,如果需要继续删除多个key,可以依样画葫芦继续加@CacheEvict注解即可。
SpringBoot缓存相关的使用可以参考:SpringBoot之redis缓存的基本配置及使用