我爱编程

Java 高并发之缓存

2018-04-01  本文已影响0人  慕童

Java并发编程与高并发解决方案 https://coding.imooc.com/class/195.html

使用缓存的场景

一般来说, 现在网站 或者 app 的整体流程可以用下图来表示. 用户从浏览器或者app 发起请求 > 到网络转发 > 到服务 > 再到数据库 , 接着再返回把请求内容呈现给用户.但是随着访问量的增大 , 访问内容的增加, 应用需要支撑更多的并发, 同时应用服务器和数据库服务器所要做的计算越来越多, 但是应用服务器的资源有限, 文件内容的读写也是有限的 . 如何利用有限的资源提高更大的吞吐量 , 那就是引入缓存 , 打破标准的流程, 在每个环节中 , 请求可以从缓存中直接获取目标数据并返回 , 从而减少应用的计算量, 提升应用的响应速度 , 让有限的资源服务更多的用户. 如下图, 缓存可以出现在 1 ~ 4 的各个环节中.

缓存
缓存的特征
缓存命中率的影响因素
如何提高缓存命中率

从应用架构的角度 , 要尽可能的使得应用通过缓存来直接获得数据并避免缓存失效.当然这需要对业务需求, 缓存粒度, 缓存策略,技术选型等各个方面通盘考虑权衡的 , 尽可能聚焦在高频访问且时效性不高的热点业务上 , 通过缓存预加载, 增加存储容量, 调整缓存粒度, 更新缓存等手段来提高命中率.

缓存的应用和分类场景

目前的应用服务框架中 , 是根据缓存与应用的耦合度分为本地缓存和分布式缓存.

上一篇下一篇

猜你喜欢

热点阅读