谷歌Guava Cache的使用

最近在项目中看到同事使用了Guava Cache;对这个不是特别了解,记录学习。

1、依赖



    com.google.guava
    guava
    20.0

2、创建Cache

final Cache cache = CacheBuilder.newBuilder()
            //设置cache的初始大小为16 
            .initialCapacity(16)
            //设置并发数为5,即同一时间最多只能有5个线程往cache执行写入操作  
            .concurrencyLevel(5)
            //设置cache中的数据在写入之后的存活时间为10秒  
            .expireAfterWrite(10, TimeUnit.SECONDS)
            //构建cache实例  
            .build();

3.使用Cache

put方法

cache.put("name","tom");

get方法

直接从chche中取出value数据

cache.getIfPresent("name");
String age = cache.get("name", new Callable() {
            @Override
            public String call() throws Exception {
                Thread.sleep(2*1000);
                return "age";
            }
        });

注意事项:①如果调用get方法时key在cache中存在;直接返回。②如果key不存在;执行call()中代码;注意;不能返回null

③get方法并不是多线程的;而是执行get方法的调用线程执行call方法。

4.过期和其他参考:

https://blog.csdn.net/qb170217/article/details/81484139

 

你可能感兴趣的:(java)