我已在我的应用程序中实现了咖啡因缓存。我正在从一些静态表中缓存数据。但是我想知道是否可以使用REST API或其他方式手动刷新/清除/重新加载缓存,或按需执行此操作。请问有什么方法可以实现这样的要求。
我希望有一个类似于以下的东西: 一个端点URL,如:http://localhost:8080/refreshCache 这将在内部触发某些方法,并手动清除缓存或重新加载新值。
以下是缓存配置:
我希望有一个类似于以下的东西: 一个端点URL,如:http://localhost:8080/refreshCache 这将在内部触发某些方法,并手动清除缓存或重新加载新值。
以下是缓存配置:
@Configuration
public class CacheConfig{
private com.github.benmanes.caffeine.cache.Cache<Object, Object> cache;
@Bean
Caffeine<Object,Object> cacheBuilder(){
return Caffeine.newBuilder()
.initialCapacity(300)
.maximumSize(50000)
.expireAfterAccess(1, TimeUnit.DAYS)
.removalListener(new CacheRemovalListener())
.recordStats();
}
class CacheRemovalListener implements RemovalListener<Object, Object> {
@Override
public void onRemoval(Object key, Object value, RemovalCause cause) {
System.out.format("Removal listener called with key [%s], cause[%s], evicted [%s] %n",
key , cause.toString(), cause.wasEvicted());
}
}
}
invalidateAll()
方法来清除它。如果您正在使用 Spring Cache,请查阅其文档以了解清除功能。 - Ben Manes