一谈缓存,内心顿时豁然开朗 。迫于key-value的形式,总感觉轻风拂面,杨柳依依,一切都尽在我掌握之中 。犹如那一眼相中佳人的冲动,脑子里尽是佳人的容颜 。
文章插图
那缓存如果站在网站架构的角度,你知道它的设计原理和影响作用吗?
絮叨在商业的世界里,常说的一句话是 "现金为王" 。在互联网、移动互联网乃至整个软件技术的世界里面,与之相近的就是 "缓存为王" 。
为何这么说呢?试想一下,你个完整的网络请求(HTTP、SOAP、RPC等),如果在执行过程的某个部分尚有缓存,是不是就能提前响应给客户端呢?
为何现在很多中大型公司在面试时,对缓存的应用、原理、高可用等一系列问题,都一扑啦的扔给你,让你难以招架 。原因都在这 。
什么是缓存?
缓存:存储在计算机上的一个原始数据复制,以便于访问缓存是系统快速响应中的一种关键技术,是一组被保存起来以备将来使用的东西 。介于应用开发和系统开发之间,是产品经理经常顾及不到的地方,也是技术架构设计中的非功能性约束 。
--维基百科
应用开发我知道,这系统缓存是个什么情况呀,小吒哥?什么是多级缓存架构?顾名思义,由多个维度共同组成的缓存工程 。因为缓存在不同的场景有着不同的意义 。采用的技术手段也不同 。
不要着急,往后面看
按缓存存在形式分:
- 硬件缓存(如CPU、硬盘等)
- 操作系统缓存
- 软件缓存 系统缓存是什么?
总结:操作系统存调用涉及到有缓存的部分,都可算系统缓存
软件运行都需建立在操作系统之上,在运行时需要把程序装载到内存中,但软件执行操作内存时都是基于虚拟内存映射的机制,并不是直接操作物理内存 。虚拟内存以块表(内存块组成的表格)的形式来存储相关资源 。
注:物理内存组成上由多个方块状的元素构成,该元素是内存管理的最小单位 。每一个元素有8个小电容,存储8个bit,即1字节 。为提高系统的存取速度,在 地址映射机制中增加了一个小容量的联想寄存器,即块表 。
是不是和磁盘块差不多,^_^。吒吒辉懂你呀
文章插图
内存块表
它 用来存放当前访问最频繁的少数活动页面的页数 。当某用户需存取数据时,根据数据所在的逻辑页号在块表中找到对应的内存块号,再联系其页内地址,形成物理地址 。
总结:读取数据时-->先找逻辑页--->排查内存块号--->获得物理层内存表示页内地址---->物理地址如果块表中没有相应的逻辑页号,则地址映射仍然可以通过内存中的页表进行操作,只是它得到是空闲块号,必须将该块号填入块表中的空闲区 。如果块表中没有空闲区,则根据淘汰算法淘汰块表中的某一行,再填入新的页号和块号 。
我记得计算机获取缓存是按照就近原则的,那它们的优先级呢?缓存会根据存储速度来选择最合适的存储器,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小
分层如下:寄存器(离CPU最近,寄存器速度最快)、高速缓存(缓存也是分级,有L1,L2等缓存)、主存(普通内存)、本地磁盘
文章插图
日常开发常使缓存软件,根据软件系统所处位置不同,可分
- 客户端缓存
- 网络缓存
- 服务端缓存
文章插图
为什么使用多级缓存架构?根本在于为网站提供高性能服务,让用户具有更好的用户体验 。以较少的成本获取更大的性能空间 。
推荐阅读
- 穿衣搭配|喜欢上了女同事,只需这样追求她,轻松拿下
- 除湿减肥只需巧动身体一个部位
- 和孝固伦公主是谁的女儿 固伦和静公主为什么只活了20岁
- 像一只思考的鲸头鹳那样走走逛逛 鲸头鹳为什么要拔毛送人
- Windows 10默认已禁用USB驱动器缓存 1903版本起无需点击安全弹出
- 只做技术的程序员后来都怎么样了?值得深思
- 李自成真的只要求崇祯封王吗 李自成会杀崇祯皇帝吗
- 骁龙|为什么游戏手机都只用骁龙平台?知道真相的我竟无法反驳
- 华为防火墙配置上网行为管理,禁止上网,只允许邮件、微信和钉钉
- 只需开启电脑这个设置,即可实现快速分屏