阿里妹导读:缓存是搭建高性能高并发系统的必备手段之一,通常用来解决性能瓶颈,是程序员的必备知识点,也是面试必备考点。
尽管,产品经理大概率不会关注系统性能,但程序员在实现需求的时候必须思考系统承载的并发量和用户量。缓存主要用来解决性能瓶颈的问题,一旦错误使用反而会令系统崩溃。今天,我们就通过4W的方式系统化地总结缓存相关的理论知识。
关于缓存的定义,在wiki中为:
a collection of data duplicating original values stored elsewhere on a computer, usually for easier access.
简单理解就是保存在计算机设备中的一个数据副本,以便于后续能够进行快速访问。
1)系统响应时间 :响应时间是指系统对用户请求做出响应的时间,不同的功能的链路长短不同,并且同一功能在不同数据量等这些情况都会导致响应时间的不同。因此,在衡量系统响应时间时,通常会关注软件产品所有功能的平均响应时间以及最大响应时间。
2)延迟时间 :在讨论系统响应时间时,更细粒度的划分可以划分为:
客户端在接受数据进行渲染的内容“呈现时间”;
服务端在接受用户请求发送至服务端以及服务端将数据返回到客户端这两个过程中涉及到的:网络传输时间以及应用延迟时间。应用延迟时间即是服务端在执行整个服务链路时所花费的时间,也是性能优化首要降低的就是这个时间。
3)吞吐量 :吞吐量指的是单位时间内能够处理请求的数量,对于无并发的应用来说,吞吐量和请求响应时间成反比,服务延迟更长则系统吞吐量更低。
4)并发用户数 :并发用户数指的是系统能够同时承载正常使用系统功能的用户数,相较于吞吐量,这个指标更为笼统但是对于非软件领域的人来说更容易理解。
客户端缓存
网络缓存
服务端缓存
单机缓存
缓存集群
分布式缓存
本地缓存/进程内缓存
进程间缓存
远程缓存