过滤式缓存方法及其装置、缓存系统制造方法及图纸

技术编号:5346288 阅读:232 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种过滤式缓存方法及其装置、缓存系统,其中过滤式缓存方法为根据用户请求,获取用户请求中的key;S2:根据所述key,选择与该用户请求相应的缓存服务器;S3:从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。本发明专利技术的过滤式缓存方法能够提高缓存数据命中率,并提高了缓存的扩展性。

【技术实现步骤摘要】

本专利技术涉及互联网数据缓存领域,尤其涉及一种过滤式缓存方法及其装置、缓 存系统。
技术介绍
在互联网应用领域中,数据缓存技术至关重要,尤其是页面数据缓存技术,不 仅要保证缓存的简易性,还要保证缓存的性能、可扩展性。互联网缓存技术一般都是通 过反向代理方式来实现的。如图1,在反向代理方式中,由代理服务器来接受互联网上 的连接请求,然后将请求转发给WEB服务器,并将从WEB服务器上得到的结果返回给 互联网上请求连接的客户端,此时代理服务器对互联网提供服务,将WEB服务器屏蔽。 反向代理服务器如果发现本地有缓存的数据内容,并且未过期,就不再请求内部网络的 WEB服务器了,直接返回给用户,节省了 WEB服务器上代码执行和生成页面的时间, 因此可以看出反向代理方式存在以下两个问题(1)如果增加代理服务器来提高访问效率,必然降低命中率,因为不同的代理服 务器缓存的数据在不同的WEB服务器上,如果用户的数据请求(如页面数据请求)对于 每个WEB服务器都为首次请求(也即每个WEB服务器上都没有该用户所要请求的缓存 数据),那么对于该用户每次的同一个数据请求,该请求每次被随机分配不同的WEB服 务器,这时每次不同的代理服务器都需要调用内部网络的WEB服务器,从而降低WEB 服务器的命中率。(2)可缓存的数据量无法通过增加代理服务器来扩展,因为任何一个数据请求都 可能访问到任何一台代理服务器,增加可缓存的数据量就需要对每台代理服务器增加存 储量,这样就会大大提高了运营的成本,从而使其扩展性比较差。
技术实现思路
本专利技术的实施例旨在提供一种过滤式缓存方法及装置,以解决现有技术缓存数 据命中率低和扩展性差的问题。为实现上述目的,本专利技术的实施例提供一种过滤式缓存方法,包括下述步骤Si:根据用户请求,获取用户请求中的key;S2根据所述key,选择与该用户请求相应的缓存服务器; S3从所述选择的缓存服务器中查 询该用户请求的数据,将查找到的数据直接 返回给该用户。根据本专利技术的一个实施例,所述过滤式缓存方法还包括S4若在所述选择的缓存服务器中查找不到该用户请求的数据,则执行业务逻 辑从数据库中查询该用户请求的数据;S5根据从数据库中查找到的数据的key,将该查找到的数据缓存到所述选择 的缓存服务器中,并将该数据返回给用户。根据本专利技术的一个实施例,所述步骤Sl中所述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,详细介绍本专利技术的过滤式 缓存方法,该方法包括以下步骤Sl 根据用户请求,选择用户请求中的key ;S2根据所述key,选择与该用户请求相应的缓存服务器;S3从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接 返回给该用户。根据本专利技术的一个实施例,其中在步骤Sl中,至少一个WEB服务器中的一个 WEB服务器接收到用户的连接请求,比如说请求获取某个页面内容,这时,可以将连接 请求中的页面地址(如资源定位符URL)作为key ;根据本专利技术的一个实施例,其中在步骤S2中,可以对所述key作哈希编码,然 后将所述key的hash code(哈希码)模除所有缓存服务器的数量,所得到的余数即为针对 某用户请求选中的缓存服务器的索引,从而可以根据该索引选择与该用户请求相应的缓 存服务器,针对性的根据用户请求进行缓存服务,从而提高了缓存的命中率。根据本专利技术的一个实施例,其中在步骤S3中,在所获取到的缓存服务器中查询 用户请求的数据时,可以根据key来进行查询,这是由于在缓存服务器中缓存数据时,可 以以key作为索引号对数据进行缓存。在步骤S3中如果查找到用户请求的数据,则表明 该用户请求应不是首次请求,所请求的数据(比如说页面内容)已经缓存在缓存服务器中 了,可以直接查找到,在查到后,直接将查找到的数据返回给用户。根据本专利技术的一个实施例,在缓存服务器中查找不到用户请求的数据时,例如 当该用户为首次请求时,可以由WEB服务器执行业务逻辑(主要是访问数据的逻辑), 从后台的数据库中查询该用户所要请求的数据(比如页面内容),然后将查找到的数据 (如页面内容)中返回给用户请求并存入该用户请求选择的缓存服务器中,以便于对于后 续的同一请求访问,能够直接通过缓存服务器访问数据。这里,根据本专利技术的一个实施例,可以根据查找到的数据的key,将该数据缓本文档来自技高网...

【技术保护点】
一种过滤式缓存方法,包括下述步骤:S1:根据用户请求,获取用户请求中的key;S2:根据所述key,选择与该用户请求相应的缓存服务器;S3:从所述选择的缓存服务器中查询该用户请求的数据,将查找到的数据直接返回给该用户。

【技术特征摘要】

【专利技术属性】
技术研发人员:王红宝
申请(专利权)人:北京瑞信在线系统技术有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1