客户端应用:浏览器可以缓存 HTTP 响应。我们第一次通过 HTTP 请求数据,并在 HTTP 标头中返回过期策略;我们再次请求数据,客户端应用首先尝试从浏览器缓存中检索数据。
cacheCDN:CDN 缓存静态 Web 资源。客户端可以从附近的 CDN 节点检索数据。
负载均衡器:负载均衡器也可以缓存资源。
消息传递基础结构:消息代理首先将消息存储在磁盘上,然后使用者按照自己的节奏检索它们。根据保留策略,数据会在 Kafka 集群中缓存一段时间。
服务:服务中有多个缓存层。如果数据未缓存在 CPU 缓存中,则服务将尝试从内存中检索数据。有时,服务具有二级缓存来在磁盘上存储数据。
分布式缓存:像 Redis 这样的分布式缓存在内存中保存多个服务的键值对。它提供了比数据库更好的读/写性能。
全文搜索:我们有时需要使用全文搜索(如弹性搜索)进行文档搜索或日志搜索。数据副本也会在搜索引擎中编制索引。
数据库:即使在数据库中,我们也有不同级别的缓存:
WAL(预写日志):在构建 B 树索引之前先将数据写入 WAL
缓冲池:分配给缓存查询结果的内存区域
物化视图:预先计算查询结果并将其存储在数据库表中,以提高查询性能
事务日志:记录所有事务和数据库更新
复制日志:用于记录数据库集群中的复制状态
网友评论