云原生|Java二级高速缓存架构设计

本文介绍了云原生环境中Java二级缓存架构的设计,旨在提高服务性能和并发处理能力。文章详细阐述了缓存的作用,二级缓存的模型,以及在读写操作中的实现流程。通过Caffeine作为一级缓存,Redis作为二级缓存,解决了本地缓存和分布式缓存的数据一致性问题,同时讨论了二级缓存的优缺点及其在实际业务中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么使用缓存

缓存,主要有两个用途:提高服务性能和并发。

缓存是提高服务响应速度最快的方式之一。

我们设计缓存的目的是减少用户直接访问磁盘、访问网络带来的性能损耗,把磁盘、网络请求的内容存在在内存中,提升应用程序的访问速度和并发量。

高性能 

提高应用的查询性能是大部分使用缓存的目的,特别是一些数据变动极不频繁的业务场景,比如权限查询这种情况加入缓存可以大幅降低数据库的读压力,极大的提升查询性能。

我们将缓存中的key保存到缓存中,然后在需要查询的时候直接查询缓存,而不走数据库,这样响应速度非常快,并且对于数据库的压力很小,一般缓存的查询都在微秒级,分布式缓存Redis中查询数据也在1ms中可以查询出来,这样在系统架构不进行大的变化的情况下完成了500倍的性能提升。

所以对于一些需要复杂操作耗时查出来的结果,确定后面不怎么变化,但是有很多读请求,直接将查询出来的结果放在缓存中,后面直接读缓存就好。

高并发 

mysql 数据库对于高并发的读写场景支持比较弱,通常单机支撑到 2000QPS 就开始出现性能瓶颈了。

所以若是系统高峰期一秒钟有1万个请求,那么一个 mysql 单机绝对会死掉,这个时候就只能上缓存,把很多数据放入缓存,别放入 mysql,缓存功能简单,说白了就是 key-value 式操作,单机支撑的并发量一秒可达几万十几万,单机承载并发量是 mysql 单机的几十倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值