bounty将在3天后过期。回答此问题可获得+50声望奖励。Mukesh希望吸引更多人关注此问题。
目前,我使用cron作业使用annotation @CacheEvict,之后再次使用新调用重新加载,但我对这种方法不满意,因为我有多个节点。我的要求是1.在特定时间限制后用新数据重新加载缓存。1.应在多个节点中工作。寻找一个优雅的设计。
5gfr0r5j1#
是否尝试使用缓存管理器?https://www.baeldung.com/spring-multiple-cache-managers
1条答案
按热度按时间5gfr0r5j1#
是否尝试使用缓存管理器?
https://www.baeldung.com/spring-multiple-cache-managers
1.@CacheEvict在方法级别使用。
1.@Cacheable注解设置缓存中的值,而@CacheEvict则相反地收回该高速缓存。
1.在一种方法中,我们可以使用@Cacheable来缓存结果,而在另一种方法中,我们可以使用@CacheEvict来收回缓存。
1.@CacheEvict注解是在Spring 3.1中引入的。
@CacheEvict具有以下属性。
1.动态计算密钥的字符串密钥SpEL表达式。
1.字符串keyGenerator要使用的自定义KeyGenerator的Bean名称。
1.自定义CacheManager的bean名称。如果尚未设置任何CacheResolver,则使用它来创建默认CacheResolver。
1.字符串cacheResolver要使用的自定义CacheResolver的Bean名称。
1.字符串条件SpEL表达式,用于使该高速缓存回收操作具有条件。
1.调用前的布尔值
如果为true,则会在叫用方法之前发生该高速缓存收回。