SpringBoot中缓存注解如何同时清除多个key的缓存

在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缓存的基本配置及使用


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍