caffeine的缓存

caffeine尝试
3.00版本之后就是jdk11,之前是8

Caffeine是基于Java 8的高性能,接近最佳的缓存工具库。Caffeine使用Google Guava启发的API提供内存缓存。所以它的使用成本较低,跟Guava的API大致一致。

它主要有以下几个功能:

  • 自动将条目自动加载到缓存中,可以选择同步或异步加载

  • 基于频率和新近度超过最大值时基于大小的逐出

  • 自上次访问或上次写入以来测得的基于时间的条目到期

  • 发生第一个陈旧的条目请求时,异步刷新

  • 键自动包装在弱引用中

  • 值自动包装在弱引用或软引用中

  • 逐出(或以其他方式删除)条目的通知

  • 写入通知

依赖如下:

    <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>2.9.2</version>
    </dependency>
    Cache<String, String> cache = Caffeine.newBuilder()
            // 数量上限
            .maximumSize(1024)
            // 过期机制
            .expireAfterWrite(3000, TimeUnit.MILLISECONDS)
            .softValues()
            // 剔除监听,注意这个剔除监听时间不是及时的,是懒的。
            .removalListener((RemovalListener<String, String>) (key, value, cause) ->
                    System.out.println("key:" + key + ", value:" + value + ", 删除原因:" + cause.toString()))
            .build();
    // 将数据放入本地缓存中
    cache.put("username", "afei");
    cache.put("password", "123456");
    System.out.println(cache.getIfPresent("username"));
    System.out.println(cache.getIfPresent("password"));
    System.out.println(cache.getIfPresent("passwor123d"))

猜你喜欢

转载自blog.csdn.net/dmw412724/article/details/121715669