🔹 1. 客户端应用程序:HTTP 响应可以由浏览器缓存。我们第一次通过 HTTP 请求数据,返回时在 HTTP 标头中包含过期策略;我们再次请求数据,客户端应用程序首先尝试从浏览器缓存中检索数据。
🔹 2. CDN:CDN 缓存静态网页资源。客户端可以从附近的CDN节点检索数据。
🔹 3.负载均衡器:负载均衡器也可以缓存资源。
🔹 4. 消息传递基础设施:消息代理首先将消息存储在磁盘上,然后消费者按照自己的节奏检索消息。根据保留策略,数据会在Kafka集群中缓存一段时间。
🔹 5. 服务:一个服务中有多层缓存。如果数据没有缓存在CPU缓存中,服务将尝试从内存中检索数据。有时服务有二级缓存来将数据存储在磁盘上。
🔹 6.分布式缓存:像Redis这样的分布式缓存在内存中保存多个服务的键值对。它提供比数据库更好的读/写性能。
🔹 7. 全文搜索:我们有时需要使用全文搜索,比如Elastic Search来进行文档搜索或日志搜索。数据副本也会在搜索引擎中建立索引。
🔹 8.数据库:即使在数据库中,我们也有不同级别的缓存:
- WAL(预写Log):数据在构建B树索引之前先写入WAL
- Bufferpool:分配用于缓存查询结果的内存区域
- 物化视图:预先计算查询结果并将其存储在数据库表中以获得更好的查询性能
- 交易日志:记录所有交易和数据库更新
- 复制日志:用于记录数据库集群中的复制状态
聊聊缓存那些事儿
最新推荐文章于 2024-07-21 18:03:13 发布