本地缓存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

相关文章
|
存储 消息中间件 缓存
本地缓存Caffeine系列(三)
本地缓存Caffeine系列(三)
|
缓存 NoSQL 算法
本地缓存Caffeine系列(四)
本地缓存Caffeine系列(四)
|
消息中间件 存储 监控
RabbitMQ、Kafka对比(超详细),Kafka、RabbitMQ、RocketMQ的区别
RabbitMQ、Kafka对比(超详细),Kafka、RabbitMQ、RocketMQ的区别,设计目标、适用场景、吞吐量、消息存储和持久化、可靠性、集群负载均衡
RabbitMQ、Kafka对比(超详细),Kafka、RabbitMQ、RocketMQ的区别
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
1756 0
|
1月前
|
人工智能 安全 测试技术
90% 的人还不知道!Claude Code 藏着的 /goal 命令,能帮你省下 80% 的指挥时间
Claude Code 的 /goal 命令可以一键设定目标,让 AI 全自动多轮迭代直到任务完成。本文详细讲解 /goal 的核心概念、使用方法和最佳实践,帮你省下 80% 的指挥时间。
740 0
|
存储 前端开发 测试技术
MVC、MVP、MVVM 模式
MVC、MVP 和 MVVM 是三种常见的软件架构模式,用于分离用户界面和业务逻辑。MVC(Model-View-Controller)通过模型、视图和控制器分离数据、界面和控制逻辑;MVP(Model-View-Presenter)将控制逻辑移到 Presenter 中,减少视图的负担;MVVM(Model-View-ViewModel)通过数据绑定机制进一步解耦视图和模型,提高代码的可维护性和测试性。
|
Ubuntu 网络协议 Linux
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
1769 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
|
数据安全/隐私保护
服务器远程管理简介(ILO,BMC,RSA)
现在说说HP的服务器: 好像HP的服务器标配都集成了iLO的,也就是HP自己的远程管理系统。以DL380的iLO2为例:其实服务器上要设置的也就是IP地址和用户密码之类的东东, 在服务器开机自检到lights-out卡按F8进入ILO的配置界面,在Network里设置IP地址,在Users里面设置用户密码,都很简单,一看就会。
3506 0
|
机器学习/深度学习 人工智能 算法