wxiao个人技术分享 wxiao的技术分享

Caffeine

⚠️ 本文最后更新于2024年11月03日,已经过了208天没有更新,若内容或图片失效,请留言反馈

介绍

在Java里,Caffeine缓存是一个现代化的、高性能的Java缓存库,用起来既方便又快捷。由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。

实例

Caffeine caffeine = Caffeine.newBuilder()
            .initialCapacity(3) // 初始化大小
            .expireAfterWrite(Duration.ofSeconds(1)) // 设置缓存有效期为 10 秒
            .maximumSize(4); // 最大容量
            .build();
    cache.put("aa", 13);
    System.out.println(cache.getIfPresent("aa"));

首先在我们的pom.xml文件中导入依赖

    <dependency>
         <groupId>com.github.ben-manes.caffeine</groupId>
         <artifactId>caffeine</artifactId>
    </dependency>

Test实例

@Test
    void testBasicOps() {
        // 创建缓存对象
        Cache<String, String> cache = Caffeine.newBuilder().build();
    
        // 存数据
        cache.put("book", "红楼梦");
    
        // 取数据,不存在则返回null
        String gf = cache.getIfPresent("book");
        System.out.println("book = " + gf);
    
        // 取数据,不存在则去数据库查询
        String defaultGF = cache.get("defaultBook", key -> {
        // 这里可以去数据库根据 key查询value
            return "水浒传";
        });
        System.out.println("defaultBook = " + defaultGF);
    }
By xiao On