谷歌Guava Cache的使用

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

1、依赖

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>20.0</version>
</dependency>

2、创建Cache

final Cache<String,String> 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<String>() {
            @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

 

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值