缓存(Cache),[1]是指访问速度比一般随机存取存储器更快的一种存储器,[4]在首次从真实数据源加载数据后,将数据存储到缓存中,以便以后的请求可以直接从缓存中获取数据,从而减轻数据源的负荷压力。[5] 1965年,莫里斯·威尔克斯(Maurice Wilkes)在他的论文《高速缓存存储器》中首次提到“缓存”的概念;[3]1989年,英特尔发布了Intel i486(80486)处理器,首次将浮点运算处理器和多重管线集成在同一芯片上,这大大提高了处理器的计算能力和效率;[2][6]自1990年代后期以来,整体架构已逐渐趋于稳定。1990年代后期至今,现代计算机系统普遍采用了三级缓存结构(L1、L2和L3缓存)。[2] 缓存基于局部性原理,在一段时间内,程序倾向于重复访问有限的内存区域,[7][8]主要方式包括CDN缓存、前端缓存、反向代理缓存、应用缓存和分布式缓存。[9]缓存可应用在有高性能要求、无数据实时性要求等场景中,[10]能够提高应用程序性能、减少数据库使用和成本以及可缩放和可预测性能,[11]但同时也存在着缓存雪崩、缓存穿透和缓存击穿等风险。[12][9] 发展历史
在计算的初期几十年里,主存储器的速度非常慢,价格昂贵,CPU的处理速度也并不是很快。然而,从20世纪80年代开始,这两者之间的差距开始迅速扩大。尽管微处理器的时钟速度[a]有所提高,但内存访问时间的改善幅度相对较小。随着这种差距的扩大,人们开始意识到需要一种新的高速存储器来弥补这一差距的重要性。[13]