通信系统、缓存服务器、缓存内容推送、查找方法及系统技术方案

技术编号:14687798 阅读:64 留言:0更新日期:2017-02-23 10:03
本发明专利技术提供一种通信系统、缓存服务器、缓存内容推送、查找方法及系统,其中缓存服务器根据缓存推送请求的类型分别建立平衡树和字典树,且对接收的缓存推送请求的类型进行判断,当类型为正则表达式时,根据平衡树查找相匹配的树节点,当类型为相对路径时,根据字典树查找相匹配的树节点,且查找到相匹配的节点后,对节点对应的缓存内容进行更新。本发明专利技术灵活的根据缓存推送请求的推送规则的类型对缓存内容分别进行不同方式的存储和查找,查找的时间复杂度低且准确性高。

【技术实现步骤摘要】

本专利技术涉及缓存代理服务器中缓存内容的推送技术,特别是涉及一种通信系统、缓存服务器、缓存内容推送、查找方法及系统
技术介绍
对于已经在缓存服务器上缓存的内容,有些是存在一定相同规则的,如具有相同的相对URI,或者是满足某类正则表达式。即缓存内容的部分路径是相同的或者满足一定规则。如果要及时更新这些缓存内容,我们需要使用内容推送的功能,使缓存服务器上的缓存内容得到更新。通过内容推送功能推送这一类有相同规则的缓存内容,则匹配该规则的缓存内容都可以得到刷新,到源站及时更新。这类内容推送相当于是针对一类目录的方式进行推送。传统目录推送方式采用正则表达式的方式,通过对比缓存内容与推送规则,判断缓存内容是否匹配规则。但存在以下弊端:1)使用正则表达式进行匹配字符串,使用的正则引擎主要有两大类:DFA和NFA。DFA又称确定有限状态自动机,在可识别的语言上有严格的限制。因为它不构造显示扩展,所以它不可以捕获子表达式。NFA引擎运行所谓的“贪婪的”匹配回溯算法。但是,因为传统的NFA回溯,所以它可以访问完全相同的状态多次(如果通过不同的路径到达该状态)。因此,在最坏情况下,它的执行速度可能非常慢。常用的PCRE(PerlCompatibleRegularExpressions,兼容perl的正则表达式库)是一个NFA正则引擎,所以它在提供强大的匹配功能时,却是效率低下的。2)如果是存在大量的内容推送,由于事先无法知道某个缓存内容是否匹配其中一条确定的正则表达式,所以只能采用循环遍历查找的方式逐条匹配。对于遍历所有正则表达式的时间复杂度达到O(n)。再加上上面描述的单条匹配效率低下的问题,整个遍历的性能消耗相当大。对于性能敏感的服务器,这种消耗对于服务的影响是较大的。3)如果是推送相同的推送规则,则需要更新原有的推送时间,保证缓存需要刷新的时间点是正确的。但是要找到原先的推送规则,也是需要循环遍历原有的推送规则,找到相同的推送规则进行更新,这样的时间复杂度也是O(n)。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种通信系统、缓存服务器、缓存内容推送、查找方法及系统,用于解决现有技术中推送方式单一且推送效率低下的问题。为实现上述目的及其他相关目的,本专利技术提供一种缓存内容推送方法,包括:接收到一缓存推送请求时,判断所述缓存推送请求的推送规则的类型;若所述缓存推送请求的推送规则的类型为正则表达式,则判断是否已经存在与推送规则的类型为正则表达式的缓存推送请求对应的平衡树,若存在,则在所述平衡树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建平衡树;若所述缓存推送请求的推送规则的类型为相对路径,则判断是否已经存在与推送规则的类型为相对路径的缓存推送请求对应的字典树,若存在,则在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建字典树。于本专利技术一具体实施例中,所述在所述平衡树查找与所述缓存推送请求的推送规则匹配的树节点的步骤还包括:若查找到,则根据所述缓存推送请求对相匹配的树节点对应的缓存内容进行更新;若没查找到,则根据所述缓存推送请求在所述平衡树中建立新的树节点,且将所述缓存推送请求对应的推送规则存储于所述新的树节点。于本专利技术一具体实施例中,所述在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点的步骤还包括:若查找到,则根据所述缓存推送请求对相匹配的树节点对应的缓存内容进行更新;若没查找到,则根据所述缓存推送请求在所述字典树中建立新的树节点,且将所述缓存推送请求对应的推送规则存储于所述新的树节点。于本专利技术一具体实施例中,在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点的步骤包括:将所述缓存推送请求的推送规则逐级进行分解以获得多层级的目录,且根据预设的所述目录的层级优先级,在所述字典树中依次查找与所述缓存推送请求的推送规则的各层级的目录匹配的树节点,且当优先级最低的层级对应的所述目录在所述字典树中查找到对应的树节点时,判断查找到与当前缓存推送请求的推送规则匹配的树节点。于本专利技术一具体实施例中,根据所述缓存推送请求对相匹配的树节点的缓存内容进行更新的步骤包括:根据所述缓存推送请求从对应的源站中获取相应的缓存内容对相匹配的树节点对应的缓存内容进行更新。于本专利技术一具体实施例中,根据所述缓存推送请求的推送规则构建平衡树的步骤包括:在所述平衡树的每个树节点缓存一种正则表达式类型的推送规则;根据所述缓存推送请求的推送规则构建字典树的步骤包括:将相对路径类型的所述推送规则分解为多各层级的目录,所述字典树的每个树节点缓存其中一级所述目录。为实现上述目的及其他相关目的,本专利技术还提供一种缓存内容推送系统,包括:推送规则类型判断模块,用以接收到一缓存推送请求时,判断所述缓存推送请求的推送规则的类型,若所述缓存推送请求的推送规则的类型为正则表达式则执行第一推送模块,若所述缓存推送请求的推送规则的类型为正则表达式则执行第二推送模块;所述第一推送模块用以在所述缓存推送请求的推送规则的类型为正则表达式时,判断是否已经存在与推送规则的类型为正则表达式的缓存推送请求对应的平衡树,若存在,则在所述平衡树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建平衡树;第二推送模块用以在所述缓存推送请求的推送规则的类型为相对路径时,判断是否已经存在与推送规则的类型为相对路径的缓存推送请求对应的字典树,若存在,则在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建字典树。为实现上述目的及其他相关目的,本专利技术还提供一种缓存内容查找方法,应用于根据如上任一项所述的缓存内容推送方法对缓存内容进行存储和更新的缓存服务器,所述方法包括:接收到一缓存查找请求时,分别在所述平衡树和字典树查找是否存在与所述缓存查找请求匹配的树节点;若存在,则从相应的源站中获取相应的缓存内容以响应所述缓存查找请求;若不存在,则直接以所述缓存服务器中的缓存内容响应所述缓存查找请求。于本专利技术一具体实施例中,当查找到与所述缓存查找请求匹配的树节点时,还包括:判断当前树节点对应的缓存内容是否可用,且当不可用时,从相应的源站中获取相应的缓存内容以响应所述缓存查找请求。为实现上述目的及其他相关目的,本专利技术还提供一种缓存内容查找系统,应用于根据如上所述的缓存内容推送系统对缓存内容进行存储和更新的缓存服务器,所述系统包括:匹配模块,用以接收到一缓存查找请求时,分别在所述平衡树和字典树查找是否存在与所述缓存查找请求匹配的树节点;响应模块,用以在所述匹配模块判断存在与所述缓存查找请求匹配的树节点时,则从相应的源站中获取相应的缓存内容以响应所述缓存查找请求;且用以在所述匹配模块判断不存在与所述缓存查找请求匹配的树节点时,则直接以所述缓存服务器中的缓存内容响应所述缓存查找请求。为实现上述目的及其他相关目的,本专利技术还提供一种缓存服务器,包括如上所述的缓存内容推送系统以及如上所述的缓存内容查找系统。为实现上述目的及其他相关目的,本专利技术还提供一种通信系统,包括客户端、如上所述的缓存服务器、以及源站,所述客户本文档来自技高网
...
通信系统、缓存服务器、缓存内容推送、查找方法及系统

【技术保护点】
一种缓存内容推送方法,其特征在于,包括:接收到一缓存推送请求时,判断所述缓存推送请求的推送规则的类型;若所述缓存推送请求的推送规则的类型为正则表达式,则判断是否已经存在与推送规则的类型为正则表达式的缓存推送请求对应的平衡树,若存在,则在所述平衡树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建平衡树;若所述缓存推送请求的推送规则的类型为相对路径,则判断是否已经存在与推送规则的类型为相对路径的缓存推送请求对应的字典树,若存在,则在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建字典树。

【技术特征摘要】
1.一种缓存内容推送方法,其特征在于,包括:接收到一缓存推送请求时,判断所述缓存推送请求的推送规则的类型;若所述缓存推送请求的推送规则的类型为正则表达式,则判断是否已经存在与推送规则的类型为正则表达式的缓存推送请求对应的平衡树,若存在,则在所述平衡树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建平衡树;若所述缓存推送请求的推送规则的类型为相对路径,则判断是否已经存在与推送规则的类型为相对路径的缓存推送请求对应的字典树,若存在,则在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点;若不存在,则根据所述缓存推送请求的推送规则构建字典树。2.根据权利要求1所述的缓存内容推送方法,其特征在于:所述在所述平衡树查找与所述缓存推送请求的推送规则匹配的树节点的步骤还包括:若查找到,则根据所述缓存推送请求对相匹配的树节点对应的缓存内容进行更新;若没查找到,则根据所述缓存推送请求在所述平衡树中建立新的树节点,且将所述缓存推送请求对应的推送规则存储于所述新的树节点。3.根据权利要求1所述的缓存内容推送方法,其特征在于:所述在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点的步骤还包括:若查找到,则根据所述缓存推送请求对相匹配的树节点对应的缓存内容进行更新;若没查找到,则根据所述缓存推送请求在所述字典树中建立新的树节点,且将所述缓存推送请求对应的推送规则存储于所述新的树节点。4.根据权利要求3所述的缓存内容推送方法,其特征在于:在所述字典树查找与所述缓存推送请求的推送规则匹配的树节点的步骤包括:将所述缓存推送请求的推送规则逐级进行分解以获得多层级的目录,且根据预设的所述目录的层级优先级,在所述字典树中依次查找与所述缓存推送请求的推送规则的各层级的目录匹配的树节点,且当优先级最低的层级对应的所述目录在所述字典树中查找到对应的树节点时,判断查找到与当前缓存推送请求的推送规则匹配的树节点。5.根据权利要求2或3所述的缓存内容推送方法,其特征在于:根据所述缓存推送请求对相匹配的树节点的缓存内容进行更新的步骤包括:根据所述缓存推送请求从对应的源站中获取相应的缓存内容对相匹配的树节点对应的缓存内容进行更新。6.根据权利要求1所述的缓存内容推送方法,其特征在于:根据所述缓存推送请求的推送规则构建平衡树的步骤包括:在所述平衡树的每个树节点缓存一种正则表达式类型的推送规则;根据所述缓存推送请求的推送规则构建字典树的步骤包括:将相对路径类型的所述推送规则分解为多各层级的目录,所述字典树的每个树节点缓存...

【专利技术属性】
技术研发人员:洪珂张俊颖郭延明董曙佳
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海;31

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

1