spring 想使用Sping Boot 刷新Redis缓存吗考虑多个pod

ztmd8pv5  于 2022-12-10  发布在  Spring
关注(0)|答案(1)|浏览(145)

bounty将在3天后过期。回答此问题可获得+50声望奖励。Mukesh希望吸引更多人关注此问题。

目前,我使用cron作业使用annotation @CacheEvict,之后再次使用新调用重新加载,但我对这种方法不满意,因为我有多个节点。
我的要求是
1.在特定时间限制后用新数据重新加载缓存。
1.应在多个节点中工作。
寻找一个优雅的设计。

5gfr0r5j

5gfr0r5j1#

是否尝试使用缓存管理器?
https://www.baeldung.com/spring-multiple-cache-managers

  1. Spring @CacheEvict注解用于逐出缓存。
    1.@CacheEvict在方法级别使用。
    1.@Cacheable注解设置缓存中的值,而@CacheEvict则相反地收回该高速缓存。
    1.在一种方法中,我们可以使用@Cacheable来缓存结果,而在另一种方法中,我们可以使用@CacheEvict来收回缓存。
    1.@CacheEvict注解是在Spring 3.1中引入的。
    @CacheEvict具有以下属性。
  2. String[] cacheNames要收回的缓存名称。
  3. String[]值cacheNames的别名。
    1.动态计算密钥的字符串密钥SpEL表达式。
    1.字符串keyGenerator要使用的自定义KeyGenerator的Bean名称。
    1.自定义CacheManager的bean名称。如果尚未设置任何CacheResolver,则使用它来创建默认CacheResolver。
    1.字符串cacheResolver要使用的自定义CacheResolver的Bean名称。
    1.字符串条件SpEL表达式,用于使该高速缓存回收操作具有条件。
  4. boolean allEntries如果为true,则删除该高速缓存中的所有条目。
    1.调用前的布尔值
    如果为true,则会在叫用方法之前发生该高速缓存收回。

相关问题