缓存:初学者指南🌐🗂️
介绍
缓存是后端/前端最重要的部分之一。我们总是使用缓存来改善延迟。

缓存存在于系统架构的每个级别,从硬件(CPU,内存和磁盘),操作系统,应用程序到用户前端(浏览器,应用程序)。
缓存是为存储来自应用程序、服务器、网站或浏览器的临时文件或数据而保留的内存,以帮助在请求时更快地加载。它包括图像、视频、动画、gif、脚本、文件等。
什么是缓存?
缓存是将连续请求的数据的副本存储在临时存储位置或缓存中以便在需要时快速访问的过程或方法。

缓存可以帮助应用程序显著提高运行速度,并且显著降低成本。
在计算中,缓存是一种高速数据存储层,用于存储数据子集(通常是瞬时数据),以便将来对该数据的请求能够比访问数据主存储位置更快地得到处理。缓存可让您高效地重复使用之前检索或计算的数据。
缓存如何工作?
缓存中的数据通常存储在快速访问硬件中,例如 RAM(随机访问存储器),也可能与软件组件一起使用。缓存的主要目的是通过减少访问底层较慢存储层的需要来提高数据检索性能。

由于要以容量换取速度,缓存通常会暂时存储一部分数据,而数据库则不同,数据库的数据通常是完整且持久的。
缓存的好处
**提高应用程序性能**。由于内存比磁盘(磁性或 SSD)快几个数量级,因此从内存缓存读取数据的速度极快(亚毫秒级)。
**降低数据库成本**。单个缓存实例可以提供数十万 IOPS(每秒输入/输出操作),有可能取代多个数据库实例,从而降低总成本。
**可预测的性能**。现代应用程序面临的一个常见挑战是处理应用程序使用量激增的情况。例如超级碗或选举日期间使用的社交应用程序、黑色星期五期间使用的电子商务网站等。
**消除数据库热点**。在许多应用程序中,一小部分数据(例如名人资料或热门产品)的访问频率可能会高于其他数据。
**增加读取吞吐量 (IOPS)**。除了较低的延迟之外,与基于磁盘的数据库相比,内存系统还提供更高的请求率 (IOPS)。
缓存类型
**数据库缓存**。数据库的速度和吞吐量可能是影响整体应用程序性能的最重要因素
**CDN 缓存**。CDN 可减少应用程序源的负载并改善用户体验。缓存 Web 内容有助于通过减少后端资源的负载和网络拥塞来提高网站的响应能力。
**Web 缓存**。了解 Web 缓存的客户端和服务器端选项。缓存方法基于从源服务器到浏览器的 HTTP 响应提供的 HTTP 标头指令。
**通用缓存**。使用内存中的键值存储是构建高性能应用程序的好方法。如今,大多数键/值存储(例如和)都可以存储 TB 级的数据。
**会话管理**。集中式会话管理数据存储可提供一致的用户体验、更好的会话持久性和高可用性。管理用户会话的方法有很多种,包括将这些会话本地存储到响应 HTTP 请求的节点,或者在您的架构中指定一个可以以可扩展且强大的方式存储这些会话的层。
缓存管理的最佳实践
有效的缓存管理对于最大限度地发挥分布式缓存的优势至关重要。一些最佳实践包括:
**1. 缓存驱逐**:实施适当的缓存驱逐策略,例如最近最少使用 (LRU) 或生存时间 (TTL),以确保缓存保持更新和相关。
**2.数据一致性**:确保缓存与主数据源保持一致,特别是在数据频繁更新的场景。
**3. 监控**:定期监控缓存命中率和未命中率,以了解缓存的有效性并进行必要的调整。