caffeine

Java高性能本地缓存框架Caffeine

一、序言

Caffeine是一个进程内部缓存框架,使用了Java 8最新的[StampedLock]乐观锁技术,极大提高缓存并发吞吐量,一个高性能的 Java 缓存库,被称为最快缓存。

二、缓存简介

(一)缓存对比

从横向对常用的缓存进行对比,有助于加深对缓存的理解,有助于提高技术选型的合理性。下面对比三种常用缓存:Redis、EhCache、Caffeine。

1. 序列化
缓存序列化原因
Redis必须实现序列化进程间数据传输,因此必须实现序列化。大多数情况下涉及内网网络传输;作为缓存数据库使用,持久化是标配。
EhCache不一定要实现序列化当缓存配置不持久化到磁盘时,无需实现序列化接口,使用时,如果不确定是否需要持久化道磁盘,建议统一实现序列化接口
Caffeine不需要实现序列化Map对象的改进型接口,不涉及任何形式的网络传输和持久化,因此完全不需要实现序列化接口。
2. 进程关系
缓存进程关系备注
Redis与业务进程独立,由于操作系统的独立管理,业务系统重启对缓存无影响Redis 服务与业务服务独立,互相影响较小
EhCache附着于业务进程,业务系统重启,存储与内存部分的缓存数据丢失;存储与硬盘部分的数据继续存在缓存配置存在两种模式: 一种是纯内存型,一种是可持久化到磁盘
Caffeine附着于业务进程,业务系统重启,缓存数据全部丢失纯内存型

内存型缓存的理解:缓存都是使用内存作为存储媒介的,各种缓存服务的区别如下:Caffeine是内存型缓存是指缓存与调用者属于同一个应用,准确的说属于同一个JVM;Redis是指另外一个独立进程的内存型,缓存数据存储在Redis数据库的内存中,而不是在调用服务所属的内存中。

3. 与Map 区别

JDK内置的Map可作为缓存的一种实现方式,然而严格意义来讲,其不能算作缓存的范畴。原因如下:一是其存储的数据不能主动过期;二是无任何缓存淘汰策略。

4.实战经验

https://www.jianshu.com/p/27460dc9e231

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值