专利名称:一种读取缓存数据的方法及系统的制作方法
技术领域:
本发明涉及一种读取缓存数据的方法及系统,用于网站的数据处理和更新,属于 网络服务领域。
背景技术:
大型互联网应用中,往往需要处理大批量、高并发的用户访问请求,这对网站的性 能提出了比较高的要求。网站的性能直接影响访问速度,从而影响到访问量和用户体验,因 此实现高性能的web应用的重要性是不言而喻的。其性能瓶颈主要体现在高延时、拥塞和 服务器负载上,而缓存就是解决性能问题最重要的措施之一。传统的缓存的访问方式,是通过建立tcp短连接访问来实现的。用户发出请求时, 建立连接,取得用户所需要的数据之后释放连接。但是当访问量大的时候,需要频繁地建立 和销毁连接,这样将会消耗缓存设备的内存等宝贵资源,降低缓存的吞吐能力,增加缓存成 本,制约缓存的访问速度,影响用户的体验。
发明内容
本发明的目的在于,提供一种读取缓存数据的方法及系统,它通过代理服务器与 远程缓存设备建立长连接的方式读取缓存数据,减少了生命周期极短的页面程序频繁对远 程缓存建立和销毁连接所导致的开销,提高了访问速度,降低了缓存成本。为解决上述技术问题,本发明采用如下的技术方案一种读取缓存数据的方法,包 括以下步骤
Si,用户发出页面访问请求;
S2,web服务器接收请求,判断页面是否涉及缓存;
S3,若页面涉及缓存,则web服务器向代理服务器发出存取缓存数据的请求; S4,根据web服务器的请求,代理服务器与缓存设备建立长连接并存取数据或者通过 已与代理服务器建立长连接的缓存设备存取数据。所述的长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期 间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。由 于代理服务设备与缓存设备建立的是长连接,不是像短连接一样一个请求结束就释放了连 接,此长连接可以继续接收请求,可重复使用,从而提高了通信效率。前述的一种读取缓存数据的方法中,所述步骤S3中web服务器向代理服务器发出 存取缓存数据的请求时,其连接为短连接。web服务器到代理设备的短连接是每次都要建立 的。所述的短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则 断开此TCP连接。所述web服务器仅与一个代理服务器进行连接,web服务器面对的连接接口简单 单一,连接的效率也更高。前述的一种读取缓存数据的方法中,所述的缓存数据,包括网页数据、文件数据和网页动态数据。缓存数据还包括其他需要缓存的数据类型。因此,本发明读取缓存数据的 方法应用十分广泛,可以应用到所有涉及缓存数据读取的计算机系统。
实现前述方法的一种读取缓存数据的系统,包括 访问请求模块,用于用户发出页面访问请求;
请求判断模块,用于Web服务器接收用户发出的页面访问请求,判断用户访问页面是 否涉及缓存;
数据请求模块,用于当用户访问页面涉及缓存时,web服务器向代理服务器发出存取缓 存数据的请求;
数据存取模块,用于代理服务器与缓存设备建立长连接并存取数据或者通过已与代理 服务器建立长连接的缓存设备存取数据。 所述的长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期 间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。由 于代理服务设备与缓存设备建立的是长连接,不是像短连接一样一个请求结束就释放了连 接,此长连接可以继续接收请求,可重复使用,从而提高了通信效率。前述的一种读取缓存数据的系统中,所述数据请求模块,web服务器向代理服务器 发出存取缓存数据的请求时,其连接为短连接。web服务器到代理设备的短连接是每次都 要建立的。所述的短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成 后,则断开此TCP连接。所述web服务器仅与一个代理服务器进行连接,web服务器面对的连接接口简单 单一,连接的效率也更高。前述的一种读取缓存数据的系统中,所述的缓存数据,包括网页数据、文件数据和 网页动态数据。缓存数据还包括其他需要缓存的数据类型。因此,本发明读取缓存数据的 系统应用十分广泛,可以应用到所有涉及缓存数据读取的计算机系统。与现有技术相比,本发明通过代理服务器与远程缓存设备建立长连接的方式来读 取缓存数据,减少了生命周期极短的页面程序频繁对远程缓存建立和销毁连接所导致的开 销,减少了重复建立连接所花费的时间,提高了访问速度,另外,由于代理服务设备与缓存 设备建立的是长连接,不是像短连接一样一个请求结束就释放了连接,此长连接可以继续 接收请求,可重复使用,从而提高了通信效率;还有,由于本实用新型使用了代理服务器,节 省了 一部分缓存,降低了成本。如果没有添加代理服务设备,web服务器面对的是很多缓存设备,web服务器与缓 存设备间的连接十分复杂,。例如一个web服务器中有100个进程,每个进程中有2次缓存 操作,那么web服务器可能就会与200个分布缓存设备进行连接。但是如果添加了代理服 务器的话,web服务器与一个代理服务器进行连接,代理服务器与多个不同的缓存设备进行 连接,代理服务器承担了复杂连接的任务。web服务器仅与一个代理服务器进行连接,web 服务器面对的连接接口简单单一,连接的效率也更高。
图1是本发明所述方法的一种实施例的工作流程图; 图2是本发明的一种实施例的系统示意图。
下面结合附图和具体实施方式
对本发明作进一步的说明。
具体实施例方式
具体实施例方式一种读取缓存数据的方法,包括以下步骤 Si,用户发出页面访问请求;
S2,web服务器接收请求,判断页面是否涉及缓存;
S3,若页面涉及缓存,则web服务器向代理服务器发出存取缓存数据的请求; S4,根据web服务器的请求,代理服务器与缓存设备建立长连接并存取数据或者通过 已与代理服务器建立长连接的缓存设备存取数据。所述步骤Sl是指用户在浏览器中输入网址,对该网页发出查看请求。 所述的长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期 间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。由 于代理服务设备与缓存设备建立的是长连接,不是像短连接一样一个请求结束就释放了连 接,此长连接可以继续接收请求,可重复使用,从而提高了通信效率。所述步骤S3中web服务器向代理服务器发出存取缓存数据的请求时,其连接为短 连接。web服务器到代理设备的短连接是每次都要建立的。所述的短连接是指通信双方有 数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接。所述web服务器仅与一个代理服务器进行连接,web服务器面对的连接接口简单 单一,连接的效率也更高。所述的缓存数据,包括网页数据、文件数据和网页动态数据。缓存数据还包括其他 需要缓存的数据类型。因此,本发明读取缓存数据的系统应用十分广泛,可以应用到所有涉 及缓存数据读取的计算机系统。实现前述方法的一种读取缓存数据的系统,该系统的示意图参见图2,包括 访问请求模块11,用于用户发出页面访问请求;
请求判断模块12,用于web服务器接收用户发出的页面访问请求,判断用户访问页面 是否涉及缓存;
数据请求模块13,用于当用户访问页面涉及缓存时,web服务器向代理服务器发出存 取缓存数据的请求;
数据存取模块14,用于代理服务器与缓存设备建立长连接并存取数据或者通过已与代 理服务器建立长连接的缓存设备存取数据。所述的长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期 间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。由 于代理服务设备与缓存设备建立的是长连接,不是像短连接一样一个请求结束就释放了连 接,此长连接可以继续接收请求,可重复使用,从而提高了通信效率。所述数据请求模块13,web服务器向代理服务器发出存取缓存数据的请求时,其 连接为短连接。web服务器到代理设备的短连接是每次都要建立的。所述的短连接是指通 信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接。所述web服务器仅与一个代理服务器进行连接,web服务器面对的连接接口简单 单一,连接的效率也更高。
所述的缓存数据,包括网页数据、文件数据和网页动态数据。缓存数据还包括其他 需要缓存的数据类型。因此,本发明读取缓存数据的系统应用十分广泛,可以应用到所有涉 及缓存数据读取的计算机系统。如果没有添加代理服务设备,web服务器面对的是很多缓存设备,web服务器与缓 存设备间的连接十分复杂,。例如一个web服务器中有100个进程,每个进程中有2次缓存 操作,那么web服务器可能就会与200个分布缓存设备进行连接。但是如果添加了代理服 务器的话,web服务器与一个代理服务器进行连接,代理服务器与多个不同的缓存设备进行 连接,代理服务器承担了复杂连接的任务。web服务器仅与一个代理服务器进行连接,web 服务器面对的连接接口简单单一,连接的效率也更高。本发明的实施例的工作流程(参见图1) Si,用户发出页面访问请求;
S2,web服务器接收请求,判断页面是否涉及缓存;
S3,若页面涉及缓存,则web服务器向代理服务器发出存取缓存数据的请求; S4,根据web服务器的请求,代理服务器与缓存设备建立长连接并存取数据或者通过 已与代理服务器建立长连接的缓存设备存取数据。实例说明比如说有10台缓存设备,在短连接下,每台的处理上限是1000次/S, 如果同时有10000个缓存请求/S,平均每个缓存需处理请求就有1000个/S,那这时候已经 达到处理上限,如果缓存请求达到20000个/S,则只能增加一倍的缓存设备。但是如果配置了 50个代理服务设备,那个平均每个代理服务设备收到的请求就 是200个,每个代理服务设备同时向后端10个缓存服务提交请求,每个缓存设备平均处理 1000个,但是由于代理服务到缓存设备是长连接,所以缓存设备处理速度会更快,处理的容 量能达到2000个/S甚至更多。这时候即使达到20000个/S,不需要再增加缓存设备。虽 然增加了 50个代理设备,但是代理设备可能离web服务器更近,传输时间短,而且代理设备 成本更低,可重用性比较强,可以既做代理设备,又能提供其他服务,因而代理成本更低。
权利要求
一种读取缓存数据的方法,其特征在于,包括以下步骤S1,用户发出页面访问请求;S2,web服务器接收请求,判断页面是否涉及缓存;S3,若页面涉及缓存,则web服务器向代理服务器发出存取缓存数据的请求;S4,根据web服务器的请求,代理服务器与缓存设备建立长连接并存取数据或者通过已与代理服务器建立长连接的缓存设备存取数据。
2.根据权利要求1所述的一种读取缓存数据的方法,其特征在于所述步骤S3中web 服务器向代理服务器发出存取缓存数据的请求时,其连接为短连接。
3.根据权利要求1或2所述的一种读取缓存数据的方法,其特征在于所述的缓存数 据,包括网页数据、文件数据和网页动态数据。
4.实现权利要求1 3所述方法的一种读取缓存数据的系统,其特征在于,包括访问请求模块(1),用于用户发出页面访问请求;请求判断模块(2),用于web服务器接收用户发出的页面访问请求,判断用户访问页面 是否涉及缓存;数据请求模块(3),用于当用户访问页面涉及缓存时,web服务器向代理服务器发出存 取缓存数据的请求;数据存取模块(4),用于代理服务器与缓存设备建立长连接并存取数据或者通过已与 代理服务器建立长连接的缓存设备存取数据。
5.根据权利要求4所述的一种读取缓存数据的系统,其特征在于所述数据请求模块 (3), web服务器向代理服务器发出存取缓存数据的请求时,其连接为短连接。
6.根据权利要求4或5所述的一种读取缓存数据的系统,其特征在于所述的缓存数 据,包括网页数据、文件数据和网页动态数据。
全文摘要
本发明公开了一种读取缓存数据的方法及系统,所述方法包括以下步骤S1,用户发出页面访问请求;S2,web服务器接收请求,判断页面是否涉及缓存;S3,若页面涉及缓存,则web服务器向代理服务器发出存取缓存数据的请求;S4,根据web服务器的请求,代理服务器与缓存设备建立长连接并存取数据或者通过已与代理服务器建立长连接的缓存设备存取数据;本发明减少了生命周期极短的页面程序频繁对远程缓存建立和销毁连接所导致的开销,提高了访问速度,另外,由于代理服务设备与缓存设备建立的是长连接,此长连接可以继续接收请求,可重复使用,从而提高了通信效率;还有,由于本发明使用了代理服务器,节省了一部分缓存,降低了成本。
文档编号H04L29/08GK101917490SQ201010282530
公开日2010年12月15日 申请日期2010年9月16日 优先权日2010年9月16日
发明者张矗, 洪林, 熊家贵 申请人:北京开心人信息技术有限公司