在计算中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求该数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前检索或计算的数据。

缓存如何运作?

缓存中的数据通常存储在 RAM(随机存取存储器)等快速存取硬件中,也可在软件组件相关操作中使用。缓存的主要目的是减少对底层速度较慢的存储层的访问需求,以此来提高数据检索性能。

在用容量换取速度方面,缓存通常是暂时存储数据子集,而数据库通常是完整且持久地存储数据。

缓存的优势

1.提升应用程序性能

因为内存比磁盘或 SSD 快几个数量级,所以从内存中缓存读取数据非常快(亚毫秒级)。这大大加快了数据访问速度,从而提升了应用程序的整体性能。

2.降低数据库成本

一个缓存实例可以支持数十万 IOPS(每秒输入/输出操作),有可能取代大量数据库实例,从而降低总成本。如果主数据库按吞吐量收费,这一点尤其明显。在这种情况下,费用可以降低数十个百分点。

3.减少后端负载

通过将读取负载的重要部分从后端数据库重定向到内存层,缓存可以减少数据库上的负载,防止其在负载情况下性能降低,甚至可以防止其在高峰期崩溃。

4.可预测的性能

现代应用程序的一个常见挑战是应对应用程序使用高峰期,例如超级碗或双11的电子商务网站等。数据库负载增加会导致获取数据的延迟增加,使应用程序的整体性能无法预测,使用具有高吞吐量的内存中缓存可以减轻这一问题。

5.消除数据库热点

在许多应用程序中,可能只有一小部分的数据(例如名人简介或热门产品)的访问频率比其他数据高。这会导致数据库中产生热点,并且可能需要针对最常用的数据根据吞吐量要求超额预置数据库资源。将常用键存储在内存缓存中,可以减少超额预置的需要,同时针对最常用数据提供快速、可预测的性能。

6.提高读取吞吐量 (IOPS)

相对于同等的基于磁盘的数据库,除了更低的延迟之外,内存中系统还可以实现更高的请求速度 (IOPS),用作分布式端缓存的单个实例每秒可以处理数十万个请求。