缓存(Cache)指访问速度比一般随机存取存储器(RAM)快的以一种RAM,通常不像系统主存使用DRAM技术,使用SRAM技术.缓存指可进行高速数据交换的存储器,CPU最先从缓存获取数据,其次从内存取数据,因此缓存读写速度快于内存。
在软件与硬件的开发中,缓存有着不同的概念,若是纯硬件开发,缓存是指CPU中的缓存,若是软件开发,如Web开发,缓存指内存中的缓存,内存中的缓存用于提高响应速度、提高并发量、保护数据库和后台系统。
CPU共有两个级别的缓存,即L1和L2缓存,解析如下表。
序号 | 缓存级别 | 描述 |
---|---|---|
1 | L1 Cache | L1 Cache(一级缓存)是CPU第一层高速缓存,内置的L1高速缓存的容量和结构对CPU的性能影响最大,不过高速缓冲存储器均由静态RAM组成,结构复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做的太大,即一级缓存在CPU内部.一般,L1缓存容量通常在32~256KB |
2 | L2 Cache | L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片,内部芯片的二级缓存运行速度与主频相同,外部的二级缓存只有主频的一半.L2高速缓存也会影响CPU性能,原则是越大越好,普通台式机CPU的L2缓存一般为128KB–2MB或更高,笔记本,服务器和工作站的CPU二级缓存最高可达1MB~3MB |
当CPU要读取一个数据时,首先从缓存中查找,若找到则立即读取并送给CPU处理,若没有找到,就从内存中读取送给CPU,同时把这个数据所在的数据块调入缓存中,可以是以后对整块数据的读取都从缓存中进行,不必再调用内存.正是这样的读取机制,使CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取,这大大节约了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待,即CPU读取数据:先缓存后内存.
随机存取存储器(Random Access Memory, RAM),也称主存(或内存),与CPU直接交换数据的内部存储器,可随时读写,速度很快.主存(Main Memory)计算机内最主要的存储器,用于加载各种程序与数据以供CPU直接运行与使用.RAM分为两种,静态RAM(SRAM)和动态RAM(DRAM),静态由于DRAM性价比高,且扩展性很好,是现代计算机主存的最主要部分.
RAM存储速度远高于动态RAM,现在使用的内存一般都是动态RAM,缓存一般是静态RAM,但是SRAM集成度低(存储相同的数据,SRAM体积是DRAM的6倍),价格高(同容量的RAM,SRAM高DRAM价格4倍),为提高系统性能,不扩大原来SRAM,增加高速动态RAM作为缓存,这些高速动态RAM速度比常规动态RAM快,比原来静态RAM缓存慢,原来的静态缓存成为一级缓存,后增加的动态RAM称为二级缓存.
随着技术的发展,二级缓存也能集成在CPU内核中,容量也逐年提升,现在再用集成在CPU内部来定义一级,二级缓存已不确切,随着二级缓存被集成到CPU内核中,遗忘二级缓存与CPU大差距分频的情况也被改变(外部二级缓存为CPU主频的一半),现在以相同主频工作,为CPU提供更高的传输速度.
只读存储器(Read Only Memory, ROM)只能读取事先存储数据的固态半导体存储器,一旦存储资料就无法改变或删除.分支:
静态随机存取存储器(Static Random-Access Memory,SRAM)在上电情况下,存储器中的数据可以永久保存,不更新,因此SRAM性能较高,但是断电之后,存储器中的数据仍会清除,并且体积较大,使得SRAM的集成度较低。SRAM主要用于二级缓存,速度快,但是价格高,体积较DRAM大。
动态随机存取存储器(Dynamic Random-Access Memory,DRAM)上电情况下,数据周期性更新,数据在上电情况下不是永久存储,因此性能较SRAM低,耗电大,但是,DRAM体积小,集成度高,成本低,DRAM性价比较高。
本部分主要讲解内存中的缓存以及内存缓存相关的问题。
序号 | 方案 |
---|---|
1 | 高可用(集群方式部署缓存) |
2 | 限流降级(缓存失效后,通过加锁或队列控制持久层数据库读写数量) |
3 | 数据预加载(先加载部分数据) |
4 | 设置不同的过期时间 |
5 | 热点数据永远不过期 |
缓存问题解决方案有多种,简单介绍常用的几种方法,如下表。
序号 | 方案 | 描述 |
---|---|---|
1 | 降级 | 基本可用的思想,保证重要服务正常运行,暂停或关闭次要服务 |
2 | 熔断 | 整体可用思想,保证整个系统正常运行,当某个服务出现过载是,关闭过载的服务 |
3 | 限流 | 整体可用思想,保证整体系统正常运行,限制服务访问次数,常用方法有计数器、漏桶和令牌桶算法 |
【参考文献】
[1]https://mp.weixin.qq.com/s/5MloHIa5zKvYYsVVEWZjQA
[2]https://baike.baidu.com/item/SRAM/7705927?fr=aladdin
[3]https://baijiahao.baidu.com/s?id=1655304940308056733&wfr=spider&for=pc
[4]https://blog.csdn.net/qq_19154605/article/details/104302302?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-10&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-10
[5]https://blog.csdn.net/weixin_34381666/article/details/91858168
[6]https://www.cnblogs.com/ziyoublog/p/10381750.html