Guava Cache 时效内存工具使用

Guava Cache 应用场景

服务需要存储服务本地内存,但是又需要过期时间的,可以使用Guava Cache。

添加依赖包

    // https://mvnrepository.com/artifact/com.google.guava/guava
    compile group: 'com.google.guava', name: 'guava', version: '23.0'

编写测试类

package com.cloud.gold.test;

import java.util.concurrent.TimeUnit;

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

/**
 * Guava Cache 测试
 * 
 * @bk https://home.cnblogs.com/u/huanuan/
 * @简书 https://www.jianshu.com/u/d29cc7d7ca49
 * @Author 六月星辰 2020年3月27日
 */
public class GuavaTest {
    public static void main(String[] args) {

        // 存储内存数据 时效3秒
        Cache<String, String> build = CacheBuilder.newBuilder().expireAfterWrite(3, TimeUnit.SECONDS).build();
        build.put("xiaozhu", "xiaozhu");
        // 第一次拿内存数据
        String ifPresent = build.getIfPresent("xiaozhu");
        System.err.println("ifPresent = " + ifPresent);
        try {
            // 线程睡眠4s
            TimeUnit.SECONDS.sleep(4);
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 第二次拿内存数据
        String ifPresent2 = build.getIfPresent("xiaozhu");
        System.err.println("ifPresent2 = " + ifPresent2);

    }
}

运行结果:


image.png

结果总结:
1.创建3秒的内存时效存储
2.内存存储key:‘xiaozhu’ value:'xiaozhu'
3.第一次打印成功
4.线程睡眠4s
5.打印失败(内存数据已经时效,被销毁)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 使用场景 缓存在很多场景下都是相当有用的。例如,计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时...
    jiangmo阅读 822评论 0 3
  • 原文 使用Guava cache构建本地缓存 - sameLuo的个人空间 - OSCHINA Guava Cac...
    OoLukeoO阅读 6,676评论 0 3
  • 原文链接:原文链接 注:这篇文章是我自己根据官方文档的原文翻译的,因为能力有限,有些地方翻译的不好,欢迎批评指正,...
    大风过岗阅读 27,172评论 0 16
  • guava cache简介 为什么会有guava cache 实际开发中,有时候会有一些不常修改,但是经常会被用到...
    黄二的NPE阅读 873评论 0 2
  • 出口商贸易融资工具:出口买方信贷 出口买方信贷实际上是为进口商提供融资的一种业务,指出口商银行在出口国政府或出口国...
    shuytu阅读 479评论 0 0