【Redis】JVM进程缓存之Caffeine

目录

一、什么是JVM进程缓存

二、分布式缓存与JVM进程缓存

三、Caffeine相关API


一、什么是JVM进程缓存

缓存在日常开发中启着至关重要的作用,由于是存储在内存中的,数据的读取速度是非常快的,能大量的减少对数据库的访问次数,减少数据库的压力。我们把缓存分为两类,一种是分布式缓存,如Redis,还有一种就是本地缓存如HashMap、GuauaCahche等

二、分布式缓存与JVM进程缓存

分布式缓存他的优点是 存储的容量大、可靠性好、可以在集群间共享,但是他的缺点就是访问缓存会有网络开销。它适用于缓存的数据量大、可靠性要求高、需要在集群之间共享。进程本地缓存他是读取本地内存没有网络开销,速度更快但是存储的容量有限,可靠性较低,无法共享,他更适用于缓存数据量小、性能要求高

三、Caffeine相关API

Caffeine是基于Java8开发的。他提供了近乎最佳命中率的高性能的本地缓存库。Spring里面的缓存使用的就是他,他有三种缓存驱逐策略:1.基于容量的,通过设置缓存的上限来实现;2.基于时间,通过设置缓存的有效时间实现;3.基于引用,设置缓存为软引用或弱引用,利用GC来回收缓存数据。性能差。下面通过一个案例来展示Caffeine相关的API


public class Test {
    // 创建缓存对象
    public static void main(String[] args) {

        Cache cache = Caffeine.newBuilder().build;

        // 添加缓存
        cache.put("by","by");

        // 查询缓存
        cache.getIfPresent("by");

        // 查询缓存,没有则查询数据库
        cache.get("by",key -> {
            // 查询数据库业务代码
            return "by";
        });
    }
}

你可能感兴趣的:(Redis,Java,缓存,redis,jvm)