CN102012931A - 过滤式缓存方法及其装置、缓存系统 - Google Patents

过滤式缓存方法及其装置、缓存系统 Download PDF

Info

Publication number
CN102012931A
CN102012931A CN 201010569449 CN201010569449A CN102012931A CN 102012931 A CN102012931 A CN 102012931A CN 201010569449 CN201010569449 CN 201010569449 CN 201010569449 A CN201010569449 A CN 201010569449A CN 102012931 A CN102012931 A CN 102012931A
Authority
CN
China
Prior art keywords
user
data
request
key
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 201010569449
Other languages
English (en)
Inventor
王红宝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruixin Online System Tech Co Ltd
Original Assignee
Beijing Ruixin Online System Tech Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ruixin Online System Tech Co Ltd filed Critical Beijing Ruixin Online System Tech Co Ltd
Priority to CN 201010569449 priority Critical patent/CN102012931A/zh
Publication of CN102012931A publication Critical patent/CN102012931A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种过滤式缓存方法及其装置、缓存系统,其中过滤式缓存方法为根据用户请求,获取用户请求中的key;S2:根据所述key,选择与该用户请求相应的缓存服务器;S3:从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。本发明的过滤式缓存方法能够提高缓存数据命中率,并提高了缓存的扩展性。

Description

过滤式缓存方法及其装置、缓存系统
技术领域
本发明涉及互联网数据缓存领域,尤其涉及一种过滤式缓存方法及其装置、缓存系统。
背景技术
在互联网应用领域中,数据缓存技术至关重要,尤其是页面数据缓存技术,不仅要保证缓存的简易性,还要保证缓存的性能、可扩展性。互联网缓存技术一般都是通过反向代理方式来实现的。如图1,在反向代理方式中,由代理服务器来接受互联网上的连接请求,然后将请求转发给WEB服务器,并将从WEB服务器上得到的结果返回给互联网上请求连接的客户端,此时代理服务器对互联网提供服务,将WEB服务器屏蔽。反向代理服务器如果发现本地有缓存的数据内容,并且未过期,就不再请求内部网络的WEB服务器了,直接返回给用户,节省了WEB服务器上代码执行和生成页面的时间,因此可以看出反向代理方式存在以下两个问题:
(1)如果增加代理服务器来提高访问效率,必然降低命中率,因为不同的代理服务器缓存的数据在不同的WEB服务器上,如果用户的数据请求(如页面数据请求)对于每个WEB服务器都为首次请求(也即每个WEB服务器上都没有该用户所要请求的缓存数据),那么对于该用户每次的同一个数据请求,该请求每次被随机分配不同的WEB服务器,这时每次不同的代理服务器都需要调用内部网络的WEB服务器,从而降低WEB服务器的命中率。
(2)可缓存的数据量无法通过增加代理服务器来扩展,因为任何一个数据请求都可能访问到任何一台代理服务器,增加可缓存的数据量就需要对每台代理服务器增加存储量,这样就会大大提高了运营的成本,从而使其扩展性比较差。
发明内容
本发明的实施例旨在提供一种过滤式缓存方法及装置,以解决现有技术缓存数据命中率低和扩展性差的问题。
为实现上述目的,本发明的实施例提供一种过滤式缓存方法,包括下述步骤:
S1:根据用户请求,获取用户请求中的key;
S2:根据所述key,选择与该用户请求相应的缓存服务器;
S3:从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。
根据本发明的一个实施例,所述过滤式缓存方法还包括:
S4:若在所述选择的缓存服务器中查找不到该用户请求的数据,则执行业务逻辑从数据库中查询该用户请求的数据;
S5:根据从数据库中查找到的数据的key,将该查找到的数据缓存到所述选择的缓存服务器中,并将该数据返回给用户。
根据本发明的一个实施例,所述步骤S1中:所述key为用户请求中的网页地址。
根据本发明的一个实施例,所述步骤S2具体为:对所述key进行哈希编码,将生成的哈希码模除缓存服务器的数量,所获得余数为所述与该用户请求相应的缓存服务器的索引号。
相应于本发明的过滤式缓存方法,本发明还提供一种过滤式缓存装置,包括:
key获取模块,用于根据用户请求,获取用户请求中的key;
服务器选择模块,用于根据所述key,选择与该用户请求相应的缓存服务器;
查询模块,用于从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。
根据本发明的一个实施例,所述过滤式缓存装置还包括:
业务逻辑执行模块,用于在所述选择的缓存服务器中查找不到该用户请求的数据时,从数据库中查询该用户请求的数据;
缓存模块,用于根据从数据库中查找到的数据的key,将该查找到的数据缓存到所述选择的缓存服务器中,并将该数据返回给用户。
为了实现上述过滤式缓存方法,本发明还提供一种缓存系统,包括:至少一个WEB服务器和至少一个缓存服务器;
其中每个WEB服务器,直接接收用户的请求,并根据该用户请求从至少一个缓存服务器中选中一个缓存服务器进行数据的缓存和查询;
其中每个缓存服务器相应于用户请求的key来缓存该用户所请求的数据。
根据本发明的一个实施例,所述缓存系统还包括数据库,其中所述每个WEB服务器根据用户请求,从该数据库中查找该用户请求的数据,并将该数据缓存到所述选择的缓存服务器中。
由上述技术方案可知,本发明的实施例由于取消了代理服务器,直接由WEB服务器直接进行数据的缓存和查询,通过针对用户请求,选中一个缓存服务器,直接在缓存服务器中进行查询和缓存数据,能够提高缓存命中率,并且由于缓存服务器和WEB服务器分离,可以通过增加缓存服务器的数量来扩展缓存容量,提高了容量的扩展性,并降低了运营成本。
附图说明
图1为反向代理方式的系统结构示意图;
图2为本发明的一种实施例的缓存系统结构示意图;
图3为本发明的过滤式查询方法的流程图;
图4为本发明的过滤式查询方法的一种实施例的流程图;
图5本发明的过滤式查询装置的结构示意图。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
本发明的主要构思在于取消反向代理方式中的代理服务器,直接将WEB服务器面向用户,通过在WEB服务器中增加过滤功能,根据用户的请求来选择WEB服务器后端的缓存服务器,从而避免了由于反向代理方式所带来的命中率低和扩展性差的问题。下面将结合附图详细说明本发明的技术方案。
首先,参考图2,显示了本发明的过滤式缓存系统的结构图,该系统包括至少一个WEB服务器和至少一个缓存服务器,其中在WEB服务器中设置有过滤器,该过滤器用来根据用户的请求在所述至少一个缓存服务器进行选择,这样可以针对用户请求只需要选择其相应的缓存服务器就可实现数据的缓存或对缓存数据的查询过程。
结合图2所示的过滤式缓存系统的结构,并参考图3,详细介绍本发明的过滤式缓存方法,该方法包括以下步骤:
S1:根据用户请求,选择用户请求中的key;
S2:根据所述key,选择与该用户请求相应的缓存服务器;
S3:从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。
根据本发明的一个实施例,其中在步骤S1中,至少一个WEB服务器中的一个WEB服务器接收到用户的连接请求,比如说请求获取某个页面内容,这时,可以将连接请求中的页面地址(如资源定位符URL)作为key;
根据本发明的一个实施例,其中在步骤S2中,可以对所述key作哈希编码,然后将所述key的hash code(哈希码)模除所有缓存服务器的数量,所得到的余数即为针对某用户请求选中的缓存服务器的索引,从而可以根据该索引选择与该用户请求相应的缓存服务器,针对性的根据用户请求进行缓存服务,从而提高了缓存的命中率。
根据本发明的一个实施例,其中在步骤S3中,在所获取到的缓存服务器中查询用户请求的数据时,可以根据key来进行查询,这是由于在缓存服务器中缓存数据时,可以以key作为索引号对数据进行缓存。在步骤S3中如果查找到用户请求的数据,则表明该用户请求应不是首次请求,所请求的数据(比如说页面内容)已经缓存在缓存服务器中了,可以直接查找到,在查到后,直接将查找到的数据返回给用户。
根据本发明的一个实施例,在缓存服务器中查找不到用户请求的数据时,例如当该用户为首次请求时,可以由WEB服务器执行业务逻辑(主要是访问数据的逻辑),从后台的数据库中查询该用户所要请求的数据(比如页面内容),然后将查找到的数据(如页面内容)中返回给用户请求并存入该用户请求选择的缓存服务器中,以便于对于后续的同一请求访问,能够直接通过缓存服务器访问数据。
这里,根据本发明的一个实施例,可以根据查找到的数据的key,将该数据缓存到选择的缓存服务器中,比如将查找到的网页地址URL作为key,将该页面内容作为key对应的value缓存到选择的缓存服务器中;在缓存到选择的缓存服务器时,将该数据输出给用户。
参考图4,本发明的过滤式缓存方法的一个具体实施例如下:
1、WEB Server接收用户(访问查询)请求;
2、WEB Server的过滤器拦截住请求,取出请求的URL,将URL作为key作hash code,模除缓存服务器的数量,得出余数,即是选中缓存服务器的index;
3、过滤器将URL作为key,从选中的缓存服务器中查询,如果找到,直接返回给用户;
4、第3步如果找不到,将执行业务逻辑,业务逻辑查询数据库,并且以URL作为key,输出页面内容作为value,写入到选中的缓存服务器,并输出给用户。
本发明的缓存技术,通过将key做hashcode,然后模除服务器数量,得到的余数就是将要缓存服务器的序号(0开始),相同的key不会缓存到不同的两台服务器),所以提高了可扩展性,如果数据增加,只需要增加缓存服务器即可,而不需要如反向代理方式中通过对每台代理服务器增加相同容量的硬件。同一key的数据在不同次的访问中都会缓存在同一缓存服务器中,所以缓存命中率也有所提高,下面举例说明:如果缓存的有效时间是1小时,每小时用户访问量是1000,有100台服务器,如果使用反向代理,命中率=(1000-100)/1000=90%,如果使用本缓存策略,缓存命中率=(1000-1)/1000=99.9%,每个页面每小时减少了99次数据库访问,不仅降低了数据库压力,并且提高了平均访问效率。
根据本发明的一个实施例,本发明的过滤式缓存方法可通过相应的过滤式缓存装置来实现,参照图5,该过滤式缓存装置包括:
key获取模块,用于根据用户请求,获取用户请求中的key;
服务器选中模块,用于根据所述key,获取与该用户请求相应的缓存服务器;
查询模块,用于从所述获取到的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。
其中,所述装置还包括:
业务逻辑执行模块,用于在所述获取到的缓存服务器中查找不到该用户请求的数据时,执行业务逻辑从数据库中查询该用户请求的数据;
缓存模块,用于根据从数据库中查找到的数据的key,将该查找到的数据缓存到所述获取到的缓存服务器中,并将该数据返回给用户。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

Claims (8)

1.一种过滤式缓存方法,包括下述步骤:
S1:根据用户请求,获取用户请求中的key;
S2:根据所述key,选择与该用户请求相应的缓存服务器;
S3:从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。
2.根据权利要求1所述的方法,所述方法还包括:
S4:若在所述选择的缓存服务器中查找不到该用户请求的数据,则从数据库中查询该用户请求的数据;
S5:根据从数据库中查找到的数据的key,将该查找到的数据以及所述key缓存到所述选择的缓存服务器中,并将该数据返回给用户。
3.根据权利要求1所述的方法,所述步骤S1中:所述key为用户请求中的网页地址。
4.根据权利要求1所述的方法,所述步骤S2具体为:对所述key进行哈希编码,将生成的哈希码模除缓存服务器的数量,所获得余数为所述与该用户请求相应的缓存服务器的索引号。
5.一种过滤式缓存装置,包括:
key获取模块,用于根据用户请求,获取用户请求中的key;
服务器选择模块,用于根据所述key,选择与该用户请求相应的缓存服务器;
查询模块,用于从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。
6.根据权利要求5所述的装置,所述装置还包括:
业务逻辑执行模块,用于在所述获取到的缓存服务器中查找不到该用户请求的数据时,从数据库中查询该用户请求的数据;
缓存模块,用于根据从数据库中查找到的数据的key,将该查找到的数据缓存到所述选择的缓存服务器中,并将该数据返回给用户。
7.一种缓存系统,包括:至少一个WEB服务器和至少一个缓存服务器;
其中每个WEB服务器直接接收用户请求,并根据该用户请求从所述至少一个缓存服务器中选择一个缓存服务器进行数据的缓存和查询;
其中每个缓存服务器相应于用户请求的key来缓存该用户所请求的数据。
8.根据权利要求7所述的缓存系统,还包括数据库,其中所述每个WEB服务器根据用户请求,从该数据库中查找该用户请求的数据,并将该数据缓存到所述选择的缓存服务器中。
CN 201010569449 2010-12-01 2010-12-01 过滤式缓存方法及其装置、缓存系统 Pending CN102012931A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010569449 CN102012931A (zh) 2010-12-01 2010-12-01 过滤式缓存方法及其装置、缓存系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010569449 CN102012931A (zh) 2010-12-01 2010-12-01 过滤式缓存方法及其装置、缓存系统

Publications (1)

Publication Number Publication Date
CN102012931A true CN102012931A (zh) 2011-04-13

Family

ID=43843104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010569449 Pending CN102012931A (zh) 2010-12-01 2010-12-01 过滤式缓存方法及其装置、缓存系统

Country Status (1)

Country Link
CN (1) CN102012931A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291447A (zh) * 2011-08-05 2011-12-21 中国电信股份有限公司 内容分发网络负载调度方法和系统
CN102693308A (zh) * 2012-05-24 2012-09-26 北京迅奥科技有限公司 一种面向实时搜索的缓存方法
CN103095778A (zh) * 2011-11-07 2013-05-08 北京知道创宇信息技术有限公司 Web应用防火墙和web应用安全防护方法
CN103186552A (zh) * 2011-12-28 2013-07-03 北京新媒传信科技有限公司 一种业务服务中客户端访问数据的方法和系统
CN103853577A (zh) * 2013-06-26 2014-06-11 携程计算机技术(上海)有限公司 网站头部导航栏的加载方法及装置
CN105554143A (zh) * 2015-12-25 2016-05-04 浪潮(北京)电子信息产业有限公司 一种高可用缓存服务器及其数据处理方法和系统
CN105610945A (zh) * 2015-12-30 2016-05-25 赛尔网络有限公司 一种搜索流量入口本地化处理方法及装置
CN105630889A (zh) * 2015-12-18 2016-06-01 北京奇虎科技有限公司 通用缓存的方法及装置
CN105721538A (zh) * 2015-12-30 2016-06-29 东莞市青麦田数码科技有限公司 数据访问的方法和装置
CN105872097A (zh) * 2016-06-02 2016-08-17 南京师范大学 一种ndn中基于重写的可扩展任播方法和系统
CN105871980A (zh) * 2015-12-01 2016-08-17 乐视体育文化产业发展(北京)有限公司 提高缓存命中率的方法及装置
CN105959381A (zh) * 2016-06-02 2016-09-21 南京师范大学 一种ndn中基于重写的任播方法和系统
CN106101200A (zh) * 2016-06-02 2016-11-09 南京师范大学 一种ndn中基于路由和重写的任播方法和系统
CN106156061A (zh) * 2015-03-30 2016-11-23 北大方正集团有限公司 一种提高数据查询效率的方法及装置
CN110535966A (zh) * 2019-09-05 2019-12-03 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN112882829A (zh) * 2021-01-29 2021-06-01 成都环宇知了科技有限公司 一种基于nodejs服务端的缓存优化方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1501266A (zh) * 2002-11-19 2004-06-02 阿尔卑斯系统集成有限公司 根据白名单的代理服务器的高速缓存控制方法
CN101127783A (zh) * 2007-09-28 2008-02-20 北京金山软件有限公司 一种网站缓存方法和一种网站缓存的装置
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1501266A (zh) * 2002-11-19 2004-06-02 阿尔卑斯系统集成有限公司 根据白名单的代理服务器的高速缓存控制方法
CN101127783A (zh) * 2007-09-28 2008-02-20 北京金山软件有限公司 一种网站缓存方法和一种网站缓存的装置
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291447A (zh) * 2011-08-05 2011-12-21 中国电信股份有限公司 内容分发网络负载调度方法和系统
CN103095778A (zh) * 2011-11-07 2013-05-08 北京知道创宇信息技术有限公司 Web应用防火墙和web应用安全防护方法
CN103186552A (zh) * 2011-12-28 2013-07-03 北京新媒传信科技有限公司 一种业务服务中客户端访问数据的方法和系统
CN103186552B (zh) * 2011-12-28 2016-04-06 北京新媒传信科技有限公司 一种业务服务中客户端访问数据的方法和系统
CN102693308A (zh) * 2012-05-24 2012-09-26 北京迅奥科技有限公司 一种面向实时搜索的缓存方法
CN102693308B (zh) * 2012-05-24 2014-02-12 北京迅奥科技有限公司 一种面向实时搜索的缓存方法
CN103853577A (zh) * 2013-06-26 2014-06-11 携程计算机技术(上海)有限公司 网站头部导航栏的加载方法及装置
CN103853577B (zh) * 2013-06-26 2016-12-28 上海携程商务有限公司 网站头部导航栏的加载方法及装置
CN106156061A (zh) * 2015-03-30 2016-11-23 北大方正集团有限公司 一种提高数据查询效率的方法及装置
CN105871980A (zh) * 2015-12-01 2016-08-17 乐视体育文化产业发展(北京)有限公司 提高缓存命中率的方法及装置
CN105630889B (zh) * 2015-12-18 2019-12-10 北京奇虎科技有限公司 通用缓存的方法及装置
CN105630889A (zh) * 2015-12-18 2016-06-01 北京奇虎科技有限公司 通用缓存的方法及装置
CN105554143A (zh) * 2015-12-25 2016-05-04 浪潮(北京)电子信息产业有限公司 一种高可用缓存服务器及其数据处理方法和系统
CN105610945A (zh) * 2015-12-30 2016-05-25 赛尔网络有限公司 一种搜索流量入口本地化处理方法及装置
CN105721538A (zh) * 2015-12-30 2016-06-29 东莞市青麦田数码科技有限公司 数据访问的方法和装置
CN105959381A (zh) * 2016-06-02 2016-09-21 南京师范大学 一种ndn中基于重写的任播方法和系统
CN106101200A (zh) * 2016-06-02 2016-11-09 南京师范大学 一种ndn中基于路由和重写的任播方法和系统
CN105959381B (zh) * 2016-06-02 2019-04-26 南京师范大学 一种ndn中基于重写的任播方法和系统
CN106101200B (zh) * 2016-06-02 2019-04-30 南京师范大学 一种ndn中基于路由和重写的任播方法和系统
CN105872097B (zh) * 2016-06-02 2019-04-30 南京师范大学 一种ndn中基于重写的可扩展任播方法和系统
CN105872097A (zh) * 2016-06-02 2016-08-17 南京师范大学 一种ndn中基于重写的可扩展任播方法和系统
CN110535966A (zh) * 2019-09-05 2019-12-03 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN110535966B (zh) * 2019-09-05 2021-06-15 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN112882829A (zh) * 2021-01-29 2021-06-01 成都环宇知了科技有限公司 一种基于nodejs服务端的缓存优化方法及系统

Similar Documents

Publication Publication Date Title
CN102012931A (zh) 过滤式缓存方法及其装置、缓存系统
CN102006330B (zh) 分布式缓存系统、数据的缓存方法及缓存数据的查询方法
CN102163195B (zh) 一种基于分布式、异构数据库统一视图的查询优化方法
US6301614B1 (en) System and method for efficient representation of data set addresses in a web crawler
CN102542034B (zh) 一种数据库接口的结果集缓存方法
CA2711779C (en) Bloom filter for storing file access history
CN102682037B (zh) 一种数据获取方法、系统及装置
CN102469167B (zh) 域名查询的实现方法和系统
CN110674432A (zh) 二级缓存方法、装置及计算机可读存储介质
CN103701957A (zh) Dns递归方法及其系统
US20160335243A1 (en) Webpage template generating method and server
CN104850572A (zh) HBase非主键索引构建与查询方法及其系统
CN101867607A (zh) 一种分布式数据存取方法、装置及系统
CN102761627A (zh) 基于终端访问统计的云网址推荐方法及系统及相关设备
US9002780B2 (en) Method and apparatus for loading data into an alternate evaluator for directory operations
CN104424258A (zh) 多维数据查询的方法、查询服务器、列存储服务器及系统
CN109167840B (zh) 一种任务推送方法、节点自治服务器及边缘缓存服务器
CN105721538A (zh) 数据访问的方法和装置
CN109492148A (zh) 基于Redis的ElasticSearch分页查询方法和设备
CN105608159A (zh) 数据缓存的方法和装置
CN109299111A (zh) 一种元数据查询方法、装置、设备及计算机可读存储介质
CN107526762A (zh) 服务端、多数据源搜索方法和系统
JP2002525749A (ja) インターネットキャッシングシステム、方法およびそのシステムの構成
EP2426894B1 (en) System and method of processing DNS request and DNS reply
CN103186542A (zh) 一种数据查询的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110413