访问热度统计方法及装置的制作方法

文档序号:7552263阅读:389来源:国知局
专利名称:访问热度统计方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种访问热度统计方法及装置。
背景技术
根据思科(Cisco)视觉网络指数(Visual Network Index,简称为VNI)统计预测,互联网流量中90%以上的流量都是互联网数据(Web Data)、文件共享、视频类的可重复内容,这些流量采用缓存、转发的模式更为高效,通过Web缓存,将用户所需的内容缓存到离用户尽可能近的地点,用来缩短传输距离、降低骨干网传输开销,提升客户体验。通过分析Web对象的访问模型,可以有效提高缓存的有效性,这样有利于缓存器缓存的对象与未来Web访问尽可能的相似性。互联网内容访问的特点是大部分访问集中于最热的小部分内容(如二八分布、三七分布等),且分布具有明显的长尾效应,即绝大部分的内容被访问的频度很低。以上描述的分布特点可采用齐普夫(Zipf)定律来描述。根据这个特性,Web缓存器可以通过缓存最流行的Web对象,通过最不经常使用的缓存替换算法(Least Frequently Used,简称为LFU)来提高缓存命中率。但这种算法存在两个明显的缺点:为了实施LFU,需要收集所有对象的访问信息;为了提供缓存命中率,必须有足够大的缓存空间。针对相关技术中LFU算法消耗存储空间过大的问题,目前尚未提出有效的解决方案。

发明内容
本发明提供了一种访问热度统计方法及装置,以至少解决相关技术中LFU算法消耗存储空间过大的问题。根据本发明的一个方面,提供了一种访问热度统计方法,包括:从接收的访问热度统计请求中获取当前统计对象的统一资源定位符(Uniform Resource Locator,简称为URL);根据所述URL判断所述当前统计对象的队列类型,其中,所述队列类型包括:过滤队列和最不经常使用(Least Frequently Used,简称为LFU)队列,所述过滤队列采用最少最近使用(Least Recently Used,简称为LRU)算法进行排序,用于存储访问次数低于预定门限的统计对象,所述LFU队列用于存储访问次数高于所述预定门限的统计对象,所述过滤队列和所述LFU队列均为固定长度;根据所述队列类型将所述当前统计对象存储至对应的队列。优选地,根据所述URL判断所述当前统计对象的队列类型包括:如果所述当前统计对象是新增的统计对象,确定所述当前统计对象的队列类型为过滤队列;如果所述当前统计对象已经在所述过滤队列中,根据所述当前统计对象的访问次数与所述LFU队列的队尾统计对象的访问次数的大小,确定所述当前统计对象的队列类型;如果所述当前统计对象已经在所述LFU队列中,确定所述当前统计对象的队列类型为LFU队列。
优选地,根据所述当前统计对象的访问次数与所述LFU队列的队尾统计对象的访问次数的大小,确定所述当前统计对象的队列类型包括:判断所述当前统计对象的访问次数是否不低于所述LFU队列的队尾统计对象的访问次数;如果所述当前统计对象的访问次数不低于所述LFU队列的队尾统计对象的访问次数,确定所述当前统计对象的队列类型为LFU队列;如果所述当前统计对象的访问次数低于所述LFU队列的队尾统计对象的访问次数,确定所述当前统计对象的队列类型为过滤队列。优选地,根据所述队列类型将所述当前统计对象存储至对应的队列包括:如果所述当前统计对象的队列类型为过滤队列,将所述当前统计对象存储至所述过滤队列;如果所述当前统计对象的队列类型为LFU队列,通过排序算法将所述当前统计对象存储至所述LFU队列。优选地,将所述当前统计对象存储至所述过滤队列包括:将所述当前统计对象存储至所述过滤队列的队首;如果所述过滤队列已满,清除所述过滤队列的队尾统计对象。优选地,通过排序算法将所述当前统计对象存储至所述LFU队列包括:按照访问信息对所述LFU队列中的统计对象进行排序,其中,所述访问信息包括以下至少之一:访问次数、最近访问时间;如果所述LFU队列已满,将所述LFU队列的队尾统计对象迁移至所述过滤队列的队首。优选地,所述过滤队列中的每个统计对象都包括访问次数计数器,所述访问次数计数器用于统计其对应的统计对象的累计访问次数。优选地,所述过滤队列包括第一队列和第二队列,其中,所述第一队列用于存储所述过滤队列中的访问次数为I的统计对象,当所述第一队列中的统计对象被第二次访问时,将所述该统计对象迁移至所述第二队列的队首。优选地,所述第一队列的长度和所述第二队列的长度根据网络资源负荷进行调整,其中,所述网络资源负荷包括以下至少之一:网络流量、网络硬件资源消耗。优选地,所述访问热度统计方法应用于路由器或服务器上。根据本发明的另一方面,提供了一种访问热度统计装置,包括:获取模块,用于从接收的访问热度统计请求中获取当前统计对象的URL ;判断模块,用于根据所述URL判断所述当前统计对象的队列类型,其中,所述队列类型包括:过滤队列和LFU队列,所述过滤队列采用LRU算法进行排序,用于存储访问次数低于预定门限的统计对象,所述LFU队列用于存储访问次数高于所述预定门限的统计对象,所述过滤队列和所述LFU队列均为固定长度;存储模块,用于根据所述队列类型将所述当前统计对象存储至对应的队列。优选地,所述判断模块包括:第一确定单元,用于在所述当前统计对象是新增的统计对象的情况下,确定所述当前统计对象的队列类型为过滤队列;第二确定单元,用于在所述当前统计对象已经在所述过滤队列的情况下,根据所述当前统计对象的访问次数与所述LFU队列的队尾统计对象的访问次数的大小,确定所述当前统计对象的队列类型;第三确定单元,用于在所述当前统计对象已经在所述LFU队列的情况下,确定所述当前统计对象的队列类型为LFU队列。优选地,所述第二确定单元包括:判断子单元,用于判断所述当前统计对象的访问次数是否不低于所述LFU队列的队尾统计对象的访问次数;第一确定子单元,用于在所述当前统计对象的访问次数不低于所述LFU队列的队尾统计对象的访问次数的情况下,确定所述当前统计对象的队列类型为LFU队列;第二确定子单元,用于在所述当前统计对象的访问次数低于所述LFU队列的队尾统计对象的访问次数的情况下,确定所述当前统计对象的队列类型为过滤队列。优选地,所述存储模块包括:第一存储单元,用于在所述当前统计对象的队列类型为过滤队列的情况下,将所述当前统计对象存储至所述过滤队列;第二存储单元,用于在所述当前统计对象的队列类型为LFU队列的情况下,通过排序算法将所述当前统计对象存储至所述LFU队列。通过本发明,采用定长过滤队列和定长LFU队列相结合的方式,过滤队列采用LRU算法排序方式,主要用于过滤互联网低频访问对象,与传统LFU算法相比,节省了内存空间,优化了 LFU算法。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的访问热度统计方法的流程图;图2是根据本发明实施例的访问热度统计装置的结构框图;图3是根据本发明实施例的访问热度统计装置的优选结构框图;图4是根据本发明优选实施例一的过滤队列与LFU队列的示意图;图5是根据本发明优选实施例二的过滤队列与LFU队列的示意图;图6是根据本发明优选实施例三的算法实现的示意图;图7是根据本发明优选实施例四的访问热度统计方法的流程图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。本发明实施例提供了一种访问热度统计方法,图1是根据本发明实施例的访问热度统计方法的流程图,如图1所示,包括如下的步骤S102至步骤S106。步骤S102,从接收的访问热度统计请求中获取当前统计对象的URL。步骤S104,根据URL判断当前统计对象的队列类型,其中,队列类型包括:过滤队列和LFU队列,过滤队列采用LRU算法进行排序,用于存储访问次数低于预定门限的统计对象,LFU队列用于存储访问次数高于预定门限的统计对象,过滤队列和LFU队列均为固定长度。步骤S106,根据队列类型将当前统计对象存储至对应的队列。相关技术中LFU算法消耗存储空间过大。本发明实施例中,采用定长过滤队列和定长LFU队列相结合的方式,过滤队列采用LRU算法排序方式,主要用于过滤互联网低频访问对象,与传统LFU算法相比,节省了内存空间,优化了 LFU算法。步骤S104中根据URL判断当前统计对象的队列类型包括:如果当前统计对象是新增的统计对象,确定当前统计对象的队列类型为过滤队列;如果当前统计对象已经在过滤队列中,根据当前统计对象的访问次数与LFU队列的队尾统计对象的访问次数的大小,确定当前统计对象的队列类型;如果当前统计对象已经在LFU队列中,确定当前统计对象的队列类型为LFU队列。本优选实施方式中,如果当前统计对象已经在过滤队列中,判断当前统计对象的访问次数是否已经达到LFU队列所有统计对象访问次数中的最低访问次数,从而进一步确定当前统计对象属于哪个队列类型,使得确定的队列类型比较准确、可靠。在一个优选实施方式中,根据当前统计对象的访问次数与LFU队列的队尾统计对象的访问次数的大小,确定当前统计对象的队列类型可以包括:判断当前统计对象的访问次数是否不低于LFU队列的队尾统计对象的访问次数;如果当前统计对象的访问次数不低于LFU队列的队尾统计对象的访问次数,确定当前统计对象的队列类型为LFU队列;如果当前统计对象的访问次数低于LFU队列的队尾统计对象的访问次数,确定当前统计对象的队列类型为过滤队列。优选地,根据队列类型将当前统计对象存储至对应的队列包括:如果当前统计对象的队列类型为过滤队列,将当前统计对象存储至过滤队列;如果当前统计对象的队列类型为LFU队列,通过排序算法将当前统计对象存储至LFU队列。优选地,将当前统计对象存储至过滤队列包括:将当前统计对象存储至过滤队列的队首;如果过滤队列已满,清除过滤队列的队尾统计对象。优选地,通过排序算法将当前统计对象存储至LFU队列包括:按照访问信息对LFU队列中的统计对象进行排序,其中,访问信息包括以下至少之一:访问次数、最近访问时间;如果LFU队列已满,将LFU队列的队尾统计对象迁移至过滤队列的队首。在LFU队列中可以将访问次数作为主排列索引,当统计对象的访问次数一样时,以最近访问时间为依据进行排列。本优选实施方式中,排序算法可以是冒泡排序、选择排序、插入排序等。优选地,过滤队列中的每个统计对象都包括访问次数计数器,访问次数计数器用于统计其对应的统计对象的累计访问次数。考虑到互联网访问模式Zipf分布,单位时间内会出现大量的一次访问请求,为了降低一次访问对过滤队列的影响,本发明实施例提供了一种优选实施方式,如下:过滤队列包括第一队列和第二队列,其中,第一队列用于存储过滤队列中的访问次数为I的统计对象,当第一队列中的统计对象被第二次访问时,将该统计对象迁移至第二队列的队首。本优选实施方式中,在过滤队列中设置第一队列和第二队列,第一队列用于淘汰过滤队列中的一次访问对象,当第一队列中的对象二次访问时,将其迁移至第二队列队首。优选地,第一队列的长度和第二队列的长度可以根据网络资源负荷进行调整,其中,网络资源负荷包括以下至少之一:网络流量、网络硬件资源消耗。例如,网络负荷较高时,可以将第一队列的长度调整为较短,加快其淘汰一次访问的速度,从而降低访问热度统计负荷。需要说明的是,在实际应用中,上述各个队列的队首和队尾可以互调。例如,图4所示的是LFU队列按照访问次数以及最近访问时间从大到小的顺序排列,即队首的对象访问次数较高,过滤队列队尾的对象访问次数较低。互调之后,LFU队列队尾的对象访问次数较高,过滤队列队首的对象访问次数较低,即过滤队列从队首处淘汰低频访问对象。优选地,上述访问热度统计方法可以应用于路由器或服务器上。本发明实施例还提供了一种访问热度统计装置,该访问热度统计装置可以用于实现上述访问热度统计方法。图2是根据本发明实施例的访问热度统计装置的结构框图,如图2所示,该装置包括:获取模块22、判断模块24和存储模块26。下面将对其结构进行详细描述。获取模块22,用于从接收的访问热度统计请求中获取当前统计对象的URL ;判断模块24,耦合至获取模块22,用于根据获取模块22获取的URL判断当前统计对象的队列类型,其中,队列类型包括:过滤队列和LFU队列,过滤队列采用LRU算法进行排序,用于存储访问次数低于预定门限的统计对象,LFU队列用于存储访问次数高于预定门限的统计对象,过滤队列和LFU队列均为固定长度;存储模块26,耦合至判断模块24,用于根据判断模块24判断的队列类型将当前统计对象存储至对应的队列。如图3所示,优选地,判断模块24包括:第一确定单元242,耦合至获取模块22,用于在当前统计对象是新增的统计对象的情况下,确定当前统计对象的队列类型为过滤队列;第二确定单元244,耦合至获取模块22,用于在当前统计对象已经在过滤队列的情况下,根据当前统计对象的访问次数与LFU队列的队尾统计对象的访问次数的大小,确定当前统计对象的队列类型;第三确定单元246,耦合至获取模块22,用于在当前统计对象已经在LFU队列的情况下,确定当前统计对象的队列类型为LFU队列。优选地,第二确定单元244包括:判断子单元(图中未示出),用于判断当前统计对象的访问次数是否不低于LFU队列的队尾统计对象的访问次数;第一确定子单元(图中未示出),用于在当前统计对象的访问次数不低于LFU队列的队尾统计对象的访问次数的情况下,确定当前统计对象的队列类型为LFU队列;第二确定子单元(图中未示出),用于在当前统计对象的访问次数低于LFU队列的队尾统计对象的访问次数的情况下,确定当前统计对象的队列类型为过滤队列。优选地,存储模块26包括:第一存储单元262,耦合至判断模块24,用于在当前统计对象的队列类型为过滤队列的情况下,将当前统计对象存储至过滤队列;第二存储单元264,耦合至判断模块24,用于在当前统计对象的队列类型为LFU队列的情况下,通过排序算法将当前统计对象存储至LFU队列。优选地,第一存储单元262将当前统计对象存储至过滤队列的队首;如果过滤队列已满,清除过滤队列的队尾统计对象。优选地,第二存储单元264按照访问信息对LFU队列中的统计对象进行排序,其中,访问信息包括以下至少之一:访问次数、最近访问时间;如果LFU队列已满,将LFU队列的队尾统计对象迁移至过滤队列的队首。在LFU队列中可以将访问次数作为主排列索引,当统计对象的访问次数一样时,以最近访问时间为依据进行排列。本优选实施方式中,排序算法可以是冒泡排序、选择排序、插入排序等。优选地,过滤队列中的每个统计对象都包括访问次数计数器,访问次数计数器用于统计其对应的统计对象的累计访问次数。考虑到互联网访问模式Zipf分布,单位时间内会出现大量的一次访问请求,为了降低一次访问对过滤队列的影响,本发明实施例提供了一种优选实施方式,如下:过滤队列包括第一队列和第二队列,其中,第一队列用于存储过滤队列中的访问次数为I的统计对象,当第一队列中的统计对象被第二次访问时,将该统计对象迁移至第二队列的队首。本优选实施方式中,在过滤队列中设置第一队列和第二队列,第一队列用于淘汰过滤队列中的一次访问对象,当第一队列中的对象二次访问时,将其迁移至第二队列队首。
优选地,第一队列的长度和第二队列的长度可以根据网络资源负荷进行调整,其中,网络资源负荷包括以下至少之一:网络流量、网络硬件资源消耗。例如,网络负荷较高时,可以将第一队列的长度调整为较短,加快其淘汰一次访问的速度,从而降低访问热度统计负荷。需要说明的是,在实际应用中,上述各个队列的队首和队尾可以互调。例如,图4所示的是LFU队列按照访问次数以及最近访问时间从大到小的顺序排列,即队首的对象访问次数较高,过滤队列队尾的对象访问次数较低。互调之后,LFU队列队尾的对象访问次数较高,过滤队列队首的对象访问次数较低,即过滤队列从队首处淘汰低频访问对象。优选地,上述访问热度统计装置可以应用于路由器或服务器上。需要说明的是,访问热度统计装置对应于上述访问热度统计方法,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。为了使本发明的技术方案和实现方法更加清楚,下面将结合优选的实施例对其实现过程进行详细描述。优选实施例一图4是根据本发明优选实施例一的过滤队列与LFU队列的示意图,如图4所示,本优选实施例所示的算法包括两个定长队列:过滤队列和LFU队列,其中过滤队列用于过滤低频请求对象的访问热度统计,LFU队列用于记录高频访问对象的访问热度统计。图4中,虚线表示统计对象从LFU队列向过滤队列迁移,实线表示统计对象从过滤队列向LFU队列迁移。过滤队列采用LRU排序方式,通过队列末尾淘汰最近最少访问的统计对象;LFU队列使用定长的LFU排列,根据统计对象的访问次数和最近访问时间进行排序,其中访问次数为主排列索引。每个过滤队列的统计对象中都包含访问次数计数器,记录统计对象的累计访问次数,当过滤队列中的统计对象访问次数不小于LFU队列中的最小访问次数时,把该对象迁移至LFU队列,并在LFU队列中按照访问次数和最近访问时间进行排序。当LFU队列已满,有新记录加入时,迁移末尾记录至过滤队列队首。优选实施例二图5是根据本发明优选实施例二的过滤队列与LFU队列的示意图,本优选实施例中考虑到互联网访问模式Zipf分布,单位时间内会出现大量的一次访问请求,为了降低一次访问对过滤队列的影响,把过滤设置为第一队列和第二队列。如图5所示,第一队列用于过滤队列中的一次访问请求对象,当第一队列中的统计对象第二次被访问时,迁移到第二队列队首。第一队列和第二队列的长度可根据网络负荷进行调整,当负荷较高时,降低第一队列长度,使第一队列的淘汰速度加快,从而降低热度统计负荷,当网络负荷较低时,负荷较轻时,可以扩大第一队列长度,降低第一队列的淘汰速度。上述网络负荷包括但不限于网络流量和网络硬件资源消耗,如中央处理器(Center Processing Unit,简称为CPU)负荷,内存消耗等。优选实施例三图6是根据本发明优选实施例三的算法实现的示意图,如图6所示,访问热度统计模块收到访问统计请求消息,获取该消息中统计对象的URL,通过哈希函数Hash (URL),计算出哈希表的关键码值t,并根据t定位到哈希表记录。根据哈希表中的Value指示的队列信息,判断当前统计对象处在哪个队列。如果是新统计对象,则把哈希表中的队列指针指向过滤队列的队首,如果过滤队列已满,则清除队尾统计对象;如果该统计对象已经在过滤队列中,则判断当前统计对象的访问次数是否不低于LFU队列队尾对象的访问次数。如果是,则迁移到LFU队列;如果否,则指向过滤队列队首;如果该统计对象已经在LFU队列中,通过递归函数比较当前统计对象所在队列的前趋节点对象的访问次数和最近访问时间的排序是否大于当前统计对象,如果小于当前统计对象,则两者交换位置,否则排序不变,结束递归。需要说明的是,本优选实施例仅以冒泡算法为例,但并不做限定,也适于其他排序算法。LFU队列是根据访问次数和最近访问时间排序的,当LFU队列已满时,有新记录加入,则迁移队尾统计对象至过滤队列队首。优选实施例四图7是根据本发明优选实施例四的访问热度统计方法的流程图,如图7所示,包括如下步骤:步骤S702,收到其他模块调用控制原语,对目标对象进行访问统计请求。步骤S704,获取请求消息中的统计对象URL,并使用哈希函数Hash (URL),对统计对象URL进行哈希,并最终获取哈希表的关键码值t。步骤S706,根据哈希表的关键码值,定位哈希表记录,获取哈希表Value值。步骤S708,如果哈希表记录为新记录,则添加新记录,对哈希表记录中的访问次数字段进行加I操作。步骤S710,根据哈希表记录的信息判断当前统计对象所指向的队列类型。如果队列类型为空,则执行步骤S712a ;如果毒劣类型为过滤队列,则执行步骤S712b ;如果队列类型为LFU队列,则执行步骤S712c。步骤S712a,当步骤S710判断当前哈希表记录指示的队列类型为空时(即哈希表当前记录为新增记录,所指的队列类型为空),此时先判断过滤队列长度是否已经满。如果是,执行步骤S714a,否则执行步骤S716a。步骤S714a,清除过滤队列队尾记录。步骤S716a,把哈希表队列指针指向过滤队列队首。步骤S718a,设置哈希表所指的队列类型为过滤队列。步骤S712b,当步骤S710判断当前哈希表记录指示的队列类型为过滤队列时,判断哈希表记录中的访问次数是否不小于LFU队列队尾的访问次数,如果是,执行步骤S714b ;否则执行步骤S724b。步骤S714b,判断LFU队列是否已经满(即判断LFU队列长度是否已经到达预设长度),判断为真执行步骤S716b,否则执行步骤S718b ;步骤S716b,把LFU队尾记录指针指向过滤队列队首。步骤S718b,把哈希表记录指向LFU队列队尾。步骤S720b,调用递归算法,比较前趋统计对象的访问次数与当前统计对象,如果不小于当前统计对象的访问次数,则交换位置;否则结束递归,保持原排序。需要说明的是,本优选实施例仅以冒泡算法为例,也适于其他排序算法。步骤S722b,设置哈希表记录队列类型为LFU队列。步骤S724b,把哈希表队列指针指向过滤队列队首。步骤S712c,当步骤S710判断当前哈希表记录指示的队列类型为LFU队列时,调用递归算法,比较前趋统计对象的访问次数与当前统计对象的访问次数,如果不小于当前统计对象的访问次数,则交换位置;否则结束递归,保持原排序。本优选实施例中,将队列类型分为了三种,即空、过滤队列和LFU队列。实际上,队列类型为空,就是要将该对象存储至过滤队列,因此,也可以将其看成队列类型为过滤队列。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。综上所述,根据本发明的上述实施例,采用定长过滤队列和定长LFU队列相结合的方式,过滤队列采用LRU算法排序方式,主要用于过滤互联网低频访问对象,与传统LFU算法相比,节省了内存空间,优化了 LFU算法。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种访问热度统计方法,其特征在于包括: 从接收的访问热度统计请求中获取当前统计对象的统一资源定位符URL ; 根据所述URL判断所述当前统计对象的队列类型,其中,所述队列类型包括:过滤队列和最不经常使用LFU队列,所述过滤队列采用最少最近使用LRU算法进行排序,用于存储访问次数低于预定门限的统计对象,所述LFU队列用于存储访问次数高于所述预定门限的统计对象,所述过滤队列和所述LFU队列均为固定长度; 根据所述队列类型将所述当前统计对象存储至对应的队列。
2.根据权利要求1所述的方法,其特征在于,根据所述URL判断所述当前统计对象的队列类型包括: 如果所述当前统计对象是新增的统计对象,确定所述当前统计对象的队列类型为过滤队列; 如果所述当前统计对象已经在所述过滤队列中,根据所述当前统计对象的访问次数与所述LFU队列的队尾统计对象的访问次数的大小,确定所述当前统计对象的队列类型; 如果所述当前统计对象已经在所述LFU队列中,确定所述当前统计对象的队列类型为LFU队列。
3.根据权利要求2所述的方法,其特征在于,根据所述当前统计对象的访问次数与所述LFU队列的队尾统计对象的访问次数的大小,确定所述当前统计对象的队列类型包括: 判断所述当前统计对象的访问次数是否不低于所述LFU队列的队尾统计对象的访问次数; 如果所述当前统计对象的访问次数不低于所述LFU队列的队尾统计对象的访问次数,确定所述当前统计对象的队列类型为LFU队列; 如果所述当前统计对象的访问次数低于所述LFU队列的队尾统计对象的访问次数,确定所述当前统计对象的队列类型为过滤队列。
4.根据权利要求1至3中任一项所述的方法,其特征在于,根据所述队列类型将所述当前统计对象存储至对应的队列包括: 如果所述当前统计对象的队列类型为过滤队列,将所述当前统计对象存储至所述过滤队列; 如果所述当前统计对象的队列类型为LFU队列,通过排序算法将所述当前统计对象存储至所述LFU队列。
5.根据权利要求4所述的方法,其特征在于,将所述当前统计对象存储至所述过滤队列包括:将所述当前统计对象存储至所述过滤队列的队首;如果所述过滤队列已满,清除所述过滤队列的队尾统计对象。
6.根据权利要求4所述的方法,其特征在于,通过排序算法将所述当前统计对象存储至所述LFU队列包括: 按照访问信息对所述LFU队列中的统计对象进行排序,其中,所述访问信息包括以下至少之一:访问次数、最近访问时间; 如果所述LFU队列已满,将所述LFU队列的队尾统计对象迁移至所述过滤队列的队首。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述过滤队列中的每个统计对象都包括访问次数计数器,所述访问次数计数器用于统计其对应的统计对象的累计访问次数。
8.根据权利要求1所述的方法,其特征在于,所述过滤队列包括第一队列和第二队列,其中,所述第一队列用于存储所述过滤队列中的访问次数为I的统计对象,当所述第一队列中的统计对象被第二次访问时,将所述该统计对象迁移至所述第二队列的队首。
9.根据权利要求8所述的方法,其特征在于,所述第一队列的长度和所述第二队列的长度根据网络资源负荷进行调整,其中,所述网络资源负荷包括以下至少之一:网络流量、网络硬件资源消耗。
10.根据权利要求1至3中任一项所述的方法,其特征在于,所述访问热度统计方法应用于路由器或服务器上。
11.一种访问热度统计装置,其特征在于包括: 获取模块,用于从接收的访问热度统计请求中获取当前统计对象的统一资源定位符URL ; 判断模块,用于根据所述URL判断所述当前统计对象的队列类型,其中,所述队列类型包括:过滤队列和最不经常使用LFU队列,所述过滤队列采用最少最近使用LRU算法进行排序,用于存储访问次数低于预定门限的统计对象,所述LFU队列用于存储访问次数高于所述预定门限的统计对象,所述过滤队列和所述LFU队列均为固定长度; 存储模块,用于根据所述队列类型将所述当前统计对象存储至对应的队列。
12.根据权利 要求11所述的装置,其特征在于,所述判断模块包括: 第一确定单元,用于在所述当前统计对象是新增的统计对象的情况下,确定所述当前统计对象的队列类型为过滤队列; 第二确定单元,用于在所述当前统计对象已经在所述过滤队列的情况下,根据所述当前统计对象的访问次数与所述LFU队列的队尾统计对象的访问次数的大小,确定所述当前统计对象的队列类型; 第三确定单元,用于在所述当前统计对象已经在所述LFU队列的情况下,确定所述当前统计对象的队列类型为LFU队列。
13.根据权利要求12所述的装置,其特征在于,所述第二确定单元包括: 判断子单元,用于判断所述当前统计对象的访问次数是否不低于所述LFU队列的队尾统计对象的访问次数; 第一确定子单元,用于在所述当前统计对象的访问次数不低于所述LFU队列的队尾统计对象的访问次数的情况下,确定所述当前统计对象的队列类型为LFU队列; 第二确定子单元,用于在所述当前统计对象的访问次数低于所述LFU队列的队尾统计对象的访问次数的情况下,确定所述当前统计对象的队列类型为过滤队列。
14.根据权利要求11至13中任一项所述的装置,其特征在于,所述存储模块包括: 第一存储单元,用于在所述当前统计对象的队列类型为过滤队列的情况下,将所述当前统计对象存储至所述过滤队列; 第二存储单元,用于在所述当前统计对象的队列类型为LFU队列的情况下,通过排序算法将所述当前统计对象存储至所述LFU队列。
全文摘要
本发明公开了一种访问热度统计方法及装置,该方法包括从接收的访问热度统计请求中获取当前统计对象的URL;根据URL判断当前统计对象的队列类型,其中,队列类型包括过滤队列和LFU队列,过滤队列采用LRU算法进行排序,用于存储访问次数低于预定门限的统计对象,LFU队列用于存储访问次数高于预定门限的统计对象,过滤队列和LFU队列均为固定长度;根据队列类型将当前统计对象存储至对应的队列。通过本发明,采用定长过滤队列和定长LFU队列相结合的方式,过滤队列采用LRU算法排序方式,主要用于过滤互联网低频访问对象,与传统LFU算法相比,节省了内存空间,优化了LFU算法。
文档编号H04L12/24GK103178989SQ201310052268
公开日2013年6月26日 申请日期2013年2月18日 优先权日2013年2月18日
发明者陶峑郡, 郭立伟, 彭永林 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1