多级缓存架构还没听过?分布式多级缓存架构知识大瓶装,25 张图打包拎走

本文介绍了缓存的重要性及其在网站架构中的作用,特别是多级缓存架构,包括客户端缓存(如页面缓存、浏览器缓存和APP端缓存)的实现策略。强调了缓存对于提高系统性能、用户体验和并发用户数的关键作用,并探讨了响应时间、吞吐量等系统性能指标。通过网站架构的演进,展示了从起步到后期的缓存应用,强调了缓存技术在系统调优中的核心地位。
摘要由CSDN通过智能技术生成

一谈缓存,内心顿时豁然开朗。迫于key-value的形式,总感觉轻风扶面,杨柳依依,一切都尽在我掌握之中。犹如那一眼相中佳人的冲动,脑子里尽是佳人的容颜。

那缓存如果站在网站架构的角度,你知道它的设计原理和影响作用吗?

絮叨

在商业的世界里,常说的一句话是 “现金为王”。在互联网、移动互联网乃至整个软件技术的世界里面,与之相近的就是 “缓存为王”

为何这么说呢?

试想一下,你个完整的网络请求(HTTP、SOAP、RPC等),如果在执行过程的某个部分尚有缓存,是不是就能提前响应给客户端呢?

为何现在很多中大型公司在面试时,对缓存的应用、原理、高可用等一系列问题,都一扑啦的扔给你,让你难以招架。原因都在这。

什么是缓存?

缓存:存储在计算机上的一个原始数据复制,以便于访问
–维基百科

缓存是系统快速响应中的一种关键技术,是一组被保存起来以备将来使用的东西。介于应用开发和系统开发之间,是产品经理经常估计不到的地方,也是技术架构设计中的非功能性约束。

应用开发我知道,这系统缓存是个什么情况呀,小吒哥?
不要着急,往后面看

什么是多级缓存架构?

顾名思义,由多个维度共同组成的缓存工程。因为缓存在不同的场景有着不同的意义。采用的技术手段也不同。

按缓存存在形式分:

  1. 硬件缓存(如CPU、硬盘等)
  2. 操作系统缓存
  3. 软件缓存

系统缓存是什么?

操作系统是管理计算机硬件与软件资源的计算机程序,而硬、软件件运行速度的快慢基本由缓存决定,缓存的容量越大,相应的硬件运行速度也就越快。所以系统缓存就是操作系统调用硬件资源(内存、文件等)和调用应用程序时,能够启动加速执行的作用。

总结:操作系统存调用涉及到有缓存的部分,都可算系统缓存

软件运行都需建立在操作系统之上,在运行时需要把程序装载到内存中,但软件执行操作内存时都是基于虚拟内存映射的机制,并不是直接操作物理内存。虚拟内存以块表(内存块组成的表格)的形式来存储相关资源。

注:物理内存组成上由多个方块状的元素构成,该元素是内存管理的最小单位。每一个元素有8个小电容,存储8个bit,即1字节。
是不是和磁盘块差不多, _ 。吒吒辉懂你呀

为提高系统的存取速度,在 地址映射机制中增加了一个小容量的联想寄存器,即块表。

用来存放当前访问最频繁的少数活动页面的页数。当某用户需存取数据时,根据数据所在的逻辑页号在块表中找到对应的内存块号,再联系其页内地址,形成物理地址。

总结:读取数据时–>先找逻辑页—>排查内存块号—>获得物理层内存表示页内地址---->物理地址

如果块表中没有相应的逻辑页号,则地址映射仍然可以通过内存中的页表进行操作,只是它得到是空闲块号,必须将该块号填入块表中的空闲区。如果块表中没有空闲区,则根据淘汰算法淘汰块表中的某一行,在填入新的页号和块号。

我记得计算机获取缓存是按照就近原则的,那它们的优先级呢?

缓存会根据存储速度来选择最合适的存储器,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小

分层如下:寄存器(离CPU最近,寄存器速度最快)、高速缓存(缓存也是分级,有L1,L2等缓存)、主存(普通内存)、本地磁盘

日常开发常使缓存软件,根据软件系统所处位置不同,可分

  • 客户端缓存
  • 网络缓存
  • 服务端缓存

多级缓存就类似金字塔模式。从上到下依次递减。类似于一个漏斗来过滤流量请求。如果绝大多数请求在客户端和网络交互的部分就抵消,那后端服务的压力就会大大减少。

为什么使用多级缓存架构?

根本在于为网站提供高性能服务,让用户具有更好的用户体验。以较少的成本获取更大的性能空间。

聊聊用户体验

用户体验这个词最早被广泛认知是在20世纪90年代中期,由用户体验设计师唐纳德·诺曼(Donald Norman)提出和推广。

因信息技术在移动和图像处理等方面取得的进展已经使得人机交互(HCI)技术几乎渗透到人类活动的所有领域。这导致系统的评价指标从单纯的可用性,扩展到用户体验。

用户体验在人机交互技术发展过程中受到了相当的重视,其关注度与 传统的三大可用性指标(即效率、效益和基本主观满意度不相上下,甚至在某些方面更为重要。

什么是用户体验?

ISO 9241-210 标准将用户体验定义为 “人们对正在使用或期望使用的产品、系统或者服务的认知印象和回应” 。因此,用户体验是主观的,且注重实际应用。

用户体验:即用户在使用一个产品或系统之前、使用期间和使用之后的全部感受,包括情感、信仰、喜好、认知印象、生理反应、心理反应、行为和成就等各个方面。

ISO标准也暗示了可用性也可以作为用户体验的一个方面,“可用性标准可以用来评估用户体验的一些方面”。不过,该ISO标准并没有进一步阐述用户体验和系统可用性之间的具体关系。显然,这两者是相互重叠的概念。

也许这就是产品不断折腾咱技术的原因,多少得懂点。不知你家产品如何?有无da人的冲动

影响用户体验的因素

影响用户体验的三因素:

  1. 使用者的状态
  2. 系统性能
  3. 环境

系统性能是软件产品自身对用户体验最关键的因素。 因感受软件性能的主体是人,不同的人对于同样的软件可能有不同的主观感受,而且对于软件性能关心的视角也不同。

系统性能是一种非功能特性,它关注的不是某种特定的功能,而是在完成该功能时所展示出的及时性。

关于系统的性能

系统性能的指标一般包括

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莲花童子哪吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值