本地缓存Caffeine系列(一)

简介: 本地缓存Caffeine系列(一)

400W级qps本地缓存Caffeine初探:

同一key的场景:每秒操作/查询的次数

与ConcurrentHashMap和guava做对比,Caffeine:吞吐量接近400w/qps

不同key的场景:

Caffeine:吞吐量接近200w/qps

本地缓存的使用场景:

在高并发应用当中,首先会使用分布式缓存:分布式缓存的两大问题:

首先Java应用作为客户端,它会访问分布式缓存,如果分布式缓存没有就回原到db,

然后再存储到redis。mysql的吞吐量是1.5k-2k的并发量,单节点redis有5w的吞吐

量,不至于发生DB的雪崩,和打挂。

前提:所有的key分布在比较均匀的。但是大部分在生产环境情况下流量是不均匀

的。

1、hotkey:突发性的hotkey导致对于分布式缓存性能变差,缓存击穿,缓存雪崩

的问题.

①、缓存穿透:我们查DB和缓存的数据都不存在,这样每次请求直接打到数据

库,就好像缓存有和没有都一样,数据库的穿透,db当中都没有数据, 数据库集

群发生雪崩,最终导致服务雪崩。

②、缓存击穿:我们出现了一个并发访问量比较大的key在某个时间过期,导致所

有的请求直接打到DB上当这个key在失效的瞬间,大量的请求就击穿了缓存,直接

请求到数据库,数据库集群发生雪崩,最终导致服务雪崩。

③、缓存雪崩:某一时刻发生大规模的缓存失效,例如缓存服务宕机,大量的请求

达到数据库,导致数据库雪崩,最终导致服务雪崩。

热key带来的问题:

①、热key占用大量的Redis CPU的时间,使其性能变差,并影响其他请求。

②、当一个hot key在失效的瞬间,大量的请求就击穿了缓存,就直接请求到数据

库,DB打垮,数据库的雪崩。服务的雪崩。hotkey和普通的key的缓存击穿不一

样。因为流量很大,很容易导致数据库雪崩。

③、热key的请求压力数量超出Redis的承受压力,造成缓存响应严重变慢,甚至缓

存无响应,甚至发生雪崩,DB打挂,并影响导致平台整体的雪崩,甚至其他的系

统都雪崩。

2、bigkey:极个别的数据量非常大的key

相关文章
|
缓存 算法 Java
Caffeine Cache~高性能 Java 本地缓存之王
Caffeine Cache~高性能 Java 本地缓存之王
611 1
|
5月前
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
783 0
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
547 1
|
缓存 Java Spring
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
485 1
|
存储 缓存 Java
Java本地高性能缓存实践问题之如何定义Caffeine的缓存
Java本地高性能缓存实践问题之如何定义Caffeine的缓存
160 0
|
缓存 Java
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
176 0
|
缓存 Java
Java本地高性能缓存实践问题之使用Caffeine的Cache接口来查找一个缓存元素的问题如何解决
Java本地高性能缓存实践问题之使用Caffeine的Cache接口来查找一个缓存元素的问题如何解决
194 0
|
存储 消息中间件 缓存
本地缓存Caffeine系列(三)
本地缓存Caffeine系列(三)
|
缓存 NoSQL 算法
本地缓存Caffeine系列(四)
本地缓存Caffeine系列(四)
|
存储 缓存 监控
Java本地高性能缓存实践问题之Guava Cache被Caffeine所取代的问题如何解决
Java本地高性能缓存实践问题之Guava Cache被Caffeine所取代的问题如何解决
191 1