翻译出于个人意愿,一为对技术的兴趣,二为对英语的学习,过英语三级以上者还请去阅读英语原版,切勿自误。
————————————————————————————————————————————–
1. 介绍
术语缓存出至法译,字面上的意思,就是存储。作为一个数据处理的术语,缓存是指计算机储存最近读取的信息,以备将来访问。存储的信息可以使用或不使用,所以只有当存储量低于读取量时,缓存才是有益的。
缓存的概念几乎在计算机和网络系统每一个方面的都有应用。CPU中有数据和指令缓存,计算机操作系统有硬盘和文件系统的缓冲存储器缓存。分布式(网络)文件系统,如:NFS和AFS的良好性能也依赖缓存。网络路由器缓存最近使用的路由。域名系统(DNS)服务器缓存主机名到地址的查询及其他查询。
对某些数据块的请求可能同时发起。CNN的主页的请求通常伴随着该页面的所有图片请求。缓存基于之前的访问数据来预测随后的访问。当预测是正确的,会有显着的性能改善。在实践中,这种技术的好处,使得我们难以忍受计算机系统中,没有内存和磁盘高速缓存之缓慢。几乎所有的数据处理任务中读取的地方都能从高速缓存中受益。
当请求的数据在缓存中存在,我们称它为命中。同理,访问数据没有被缓存称为未命中。缓存提供性能改进的主要依据,是在服务时间上缓存命中率和未命中率的比较。所有的请求,命中的比例是所谓的命中率。
任何使用缓存的系统必须支持缓存一致性机制。这是缓存保持更新的过程。我们说缓存的数据,是新的或过时的。缓存可以立即重用新鲜的副本,但通常需要验证数据是否过时。保持一致性的算法可强可弱。弱一致性意味着缓存有时会返回过时的信息。强的一致性,意味着缓存的数据始终是先验证,然后再使用它。CPU和文件系统缓存需要很强的一致性。然而,某些类型比如:路由器和DNS解析器缓存,即使他们返回过时的信息仍是有效的。
我们知道,在现代计算机的内存和磁盘系统中,缓存起着重要作用。在WEB中,能同样成功么?问不同的人,你可能会得到不同的答案。一些缓存使Web可用是至关重要的。其他看法是缓存非常不利于用于web中。一小部分可能认为这只是一般不利于[图克斯伯里,1998]。
在这本书中,我将谈Web应用缓存技术,并试图说服你,Web缓存是一项好的技术。我们将看到如何使用Web缓存的工作原理,如何与客户端和服务器交互,和HTTP扮演的角色。您将了解用于构建缓存集群和层次的协议。除了有关技术方面的问题,我也花了很多时间在讨论分岐问题上面。由于Web高度分散的性质,介绍了一些其它有趣的问题。
当你读完本书,你应该能够为您所属机构设计和评估缓存代理解决方案。也许你将在你的防火墙安装一个独立的缓存代理,或也许你需要位于整个网络的各种缓存。此外,你应该做好准备,从缓存操作了解和诊断任何可能出现的问题或故障。如果你是一个内容提供商,那么我相信你增加你提供的信息的缓冲能力。