了解分层架构中缓存那点事儿
|
互联网的普及与发展,伴随而来的是内容信息类型日益复杂。同时,由于移动互联网的流量红利所带来的用户数和访问量,更是造就了最高10亿DAU的“微信神话”。 因此,近几年爆炸式的互联网发展也后端架构提出了新的挑战——如何去平衡应用服务器和数据库服务器成本和性能之间的矛盾。 资源往往是有限的,同时,关系型数据库的读写能力也受限于磁盘,每秒能够接收的请求次数也是有限的,如何能够有效利用有限的资源来提供尽可能大的吞吐量? 引入缓存层,是实现资源的高效利用和降低用户交互延时的不二法则。 缓存的影响因素和分类 2.1 介质因素
了解缓存在架构设计中的应用,首先我们来看下缓存的分类。最基础的如CPU缓存,CPU缓存定义为CPU与内存之间的临时数据交换器,为解决CPU运行处理速度与内存读写速度不匹配的矛盾而诞生,一般直接集成在CPU芯片上,这里就不展开细讲了。另外就是本地缓存和分布式缓存,聊到这两者时,我们先来了解下存储介质。 硬件介质角度而言,存储介质广义上可以分为内存和硬盘,其中内存(RAM)作为“指令中转器”,只负责临时性存储。磁盘作为“外存”,可以持久化存储。 • 内存:将缓存存储于内存中是最快的选择,无需额外的I/O开销,但是内存的缺点是没有持久化落地物理磁盘,一旦应用异常break down而重新启动,数据很难或者无法复原。 • 硬盘:一般来说,很多缓存框架会结合使用内存和硬盘,在内存分配空间满了或是在异常的情况下,可以被动或主动的将内存空间数据持久化到硬盘中,达到释放空间或备份数据的目的。
由于冯诺依曼式自身模型原因,就数据传输速度而言,CPU缓存 > 内存 > 硬盘。 (编辑:揭阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

