LoadingCache<String, Object> DETECTION_RULE_CACHE = CacheBuilder.newBuilder()
//设置并发级别为8,并发级别是指可以同时写缓存的线程数
.concurrencyLevel(8)
//设置写缓存后8秒钟过期
//.expireAfterWrite(8, TimeUnit.SECONDS)
//设置缓存容器的初始容量为10
.initialCapacity(10)
//设置缓存最大容量为100,超过100之后就会按照LRU最近虽少使用算法来移除缓存项
.maximumSize(1000)
//设置要统计缓存的命中率
.recordStats()
//设置缓存的移除通知
.removalListener(removalNotification -> LogUtil.info(MapCache.class, removalNotification.getKey() + " was removed, cause is " + removalNotification.getCause()))
.build(new CacheLoader<String, Object>() {
@Override
public Object load(@Nullable @NotNull String key) {
return null;
}
});