目录
一、什么是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<String,String> cache = Caffeine.newBuilder().build;// 添加缓存cache.put("by","by");// 查询缓存cache.getIfPresent("by");// 查询缓存,没有则查询数据库cache.get("by",key -> {// 查询数据库业务代码return "by";});}
}