我在我的应用程序中实现了咖啡因缓存。我正在缓存来自几个静态表的数据。但我想知道我是否可以使用 REST API 或任何其他方式手动或按需刷新/清除/重新加载缓存。任何人都可以提出一种实现这种要求的方法。
我想要类似的东西:- 端点网址,如:- 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());
}
}
}
Run Code Online (Sandbox Code Playgroud)