浅谈web cache的简单原理

原创
2017/09/19 15:15
阅读数 68

小普在最近学习WEB相关的过程中,发现了web cache是一个很有趣的点,所以这次要和大家分享的,就是关于web cache的一些个人的理解。 在介绍Web cache时,我们需要简单介绍缓存的理解。什么是缓存呢?你可以理解为是键值存储的一种方式。因此你只需要理解以下的几个点即可: 缓存通常是基于键值对来缓存的,键通过hash计算后,存放于内存某个空间,所以键可以理解为索引。而值是存放在内存空间或是磁盘空间上。 当用户的用户请求送达至Web服务器,Web服务器会对URL进行hash计算,然后比对缓存(hash表)中的键。如若命中,则根据与之对应的值找到数据存放的位置(这里的值可以理解为指针,指着对应数据存放的位置),从而获取到缓存的结果。 介绍完什么是缓存之后,我们知道了,对于web服务器,达到一定的规模之后,为服务器设定缓存机制是非常有必要的。下面的两点,也是小普的理解,认为缓存必要存在的两点原因: 时间局部性:指的是过去访问到的数据,可能再次被访问到 空间局部性:一个数据被访问,离他较近的数据也可能被访问到 这下你大概你大概知道,缓存存在的意义,已经存在的原因了吧,但是缓存也是有一定的局限性的,比如拥有以下的几个特点 缓存有生命周期。 缓存空间可能用尽:使用LRU算法(最近最少算法),需要清理缓存空间 手动清理:一些内容过期,但是缓存时间尚未超时的缓存,进行手动修剪。 不可缓存内容:私有数据,或者带有cookies的内容(一般是客户的) 讲完这些,小普也顺便分享下,关于客户端读取缓存的过程吧。客户端如果访问的数据,此时cache内容中有,这就称之为缓存命中,他的过程是下面这样的: 输入图片说明 ①客户端请求某个Web数据,会先送至缓存服务器中,缓存服务器本身会监听80号端口接收用户请求 ②当Web缓存服务器收到用户请求之后,会将这个请求送达至代理进程中 ③进程拆除用户请求报文中的应用层首部,TCP首部,IP首部等,从而获取到请求报文中的URL ④对URL进行hash计算,然后和缓存服务器中hash表中的缓存键进行比对,若一致则缓存命中,如果不命中,此时将客户的请求代理服务器会自行封装成请求报文,把自己当做http的客户端,向上游服务器发起请求。 ⑤在对应的值所指向的内存或硬盘空间上找到对应的内容数据 ⑥构建成响应报文,直接返回给客户端。 本期的干货分享就到这里啦,需要对你有所帮助。小普也在这里预告下一次的干货,将会和大家分享,关于web cache的简单的实现方式。 由睿江云运维人员提供,想了解更多,请登陆www.eflycloud.com

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部