
104
第 6 章
分布式缓存
缓存存在于应用程序的许多地方。比如,运行应用程序的
CPU
具有高速多级硬件缓存,
可以减少相对较慢的主内存访问。数据库引擎可以利用主内存来缓存数据存储的内容,
这样在许多情况下查询就可以不用访问速度相对较慢的磁盘。
分布式缓存是可扩展系统的重要组成部分。缓存使耗时的查询和计算结果能够在后续请
求中低成本地重用。由于不必为每个请求重建缓存结果,系统的容量增加了,并且可以
扩展来处理更大的工作负载。
在本章中,我将介绍两种类型的缓存。应用缓存依赖业务逻辑,业务逻辑使用分布式缓
存将预计算结果的缓存和访问结合在一起。
Web
缓存充分利用
HTTP
协议中内置的机制
在网络提供的基础设施中缓存结果。只要两种缓存类型有效使用,它们都可以使你的服
务和数据库免受繁重的读取流量负载。
6.1
应用缓存
应用缓存旨在通过将查询和计算的结果存储在内存中来提高请求响应能力,以便为
后续的请求提供服务。举个例子,读者可以发表评论的在线报纸网站,文章一旦发
布,一般就很少会修改。新的评论往往会在文章发表后很快发布,但频率会随着
文章累计发布时间的增长而迅速下降。因此,一篇文章可以在第一次访问时被缓
存,并被所有后续请求重用,直到这篇文章被更新、新评论发布或者再没有人想阅
读它。
一般来说,缓存可以减轻数据库读取流量的负担,因为许多查询都可以直接从缓存中获
取结果。对于构建成本高的对象,例如那些需要跨多个不同数据库查询的对象,缓存还
降低了计算的成本。缓存最终效果是减少了服务和数据库的计算负担,并为更多请求创
造了空间或容量。 ...