guava 缓存失效

设置guava 缓存失效时间和缓存移除 

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

import java.util.concurrent.TimeUnit;

/**
 * @Description:
 * @Param:
 * @return:
 * @Author: fuguowen
 * @date: 2019-07-30 17:23
 * @email: fuguowen@fantaike.ai
 */
public class GuavaUtils {
    private static Cache<String, String> loadingCache = CacheBuilder.newBuilder()
            /*设置缓存容器的初始容量大小为10*/
            .initialCapacity(100)
            /*设置缓存容器的最大容量大小为100*/
            .maximumSize(200)
            /*设置记录缓存命中率*/
            .recordStats()
            /*设置并发级别为8,智并发基本值可以同事些缓存的线程数*/
            .concurrencyLevel(20)
            /*设置过期时间为2秒*/
            .expireAfterWrite(60*10, TimeUnit.SECONDS)
            //设置缓存的移除通知
            .removalListener(notification -> {
       CommonLogger.info("","",notification.getKey() + " " + notification.getValue() + " 被移除,原因:" + notification.getCause());
    }).build();



    public static void setKeyVal(String key, String value){
        loadingCache.put(key, value);
    }

    public static String getValByKey(String key){
        String value = loadingCache.getIfPresent(key);
        return value;
    }
    public static void delKey(String key){
        loadingCache.invalidate(key);
    }


}

 

发布了563 篇原创文章 · 获赞 61 · 访问量 7万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览