一种缓存方法及装置与流程

文档序号:11064847阅读:756来源:国知局
一种缓存方法及装置与制造工艺

本发明涉及网络技术领域,特别是涉及一种缓存方法及装置。



背景技术:

内容分发网络(Content Delivery Network,CDN)的工作原理是尽可能的避开网络中有可能影响数据传输速度和稳定性的瓶颈和环节,使数据传输的更快、更稳定。CDN广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的网络中,当用户想要访问服务器时,CDN利用全局负载技术将用户的访问指向距离最近的CDN上,由缓存服务器直接响应用户请求。

CDN缓存服务器的数据缓存效率受网络缓存技术的直接影响,CDN缓存服务器包含普通磁盘区和高速缓存区,现有的缓存方法是根据用户访问文件的频次,来判断文件热度,将访问热度低的文件进行淘汰,将热度高的文件放入高速缓存区。在用户访问的高峰期和非高峰期的缓存方法相同,然而CDN缓存服务器的高速缓存区空间大小固定,能接受缓存的文件数量有限,当处于用户访问文件的高峰期,即文件被多次访问时,伴随着高速缓存区不断缓存文件,这给CDN缓存服务器带来很大的缓存压力,当处于用户访问文件的非高峰期时,文件访问次数显著降低,需要很长一段时间才能缓存该文件,高速缓存区的利用率较低,影响缓存效果。



技术实现要素:

本发明实施例的目的在于提供一种缓存方法及装置,减轻CDN缓存服务器的缓存压力,提高高速缓存区的利用率,改善缓存效果。具体技术方案如下:

本发明实施例提供了一种缓存方法,包括:

接收用户发送的访问请求信息,统计用户发送的访问请求信息的数量;

在所述访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,将与所述访问请求信息所对应的文件缓存至高速缓存区;

计算所述高速缓存区的缓存空间变化率;

根据所述缓存空间变化率,更新所述预先更新的访问请求信息数量的阈值,得到下一个更新阈值,以使所述访问请求信息的数量超过所述下一个更新阈值时,将与所述访问请求信息所对应的文件缓存至所述高速缓存区。

具体的,所述在所述访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,将与所述访问请求信息所对应的文件缓存至高速缓存区之前,所述方法还包括:

接收用户发送的访问请求信息,统计用户发送的访问请求信息的数量;

在所述访问请求信息的数量超过预设访问请求信息数量的阈值时,将与所述访问请求信息所对应的文件缓存至高速缓存区;

计算所述高速缓存区的缓存空间变化率;

根据所述缓存空间变化率,更新所述预设访问请求信息数量的阈值,得到所述预先更新的访问请求信息数量的阈值。

具体的,所述计算所述高速缓存区的缓存空间变化率,包括:

根据公式:INC=|(SIZE2-SIZE1)/TOTAL|,计算所述缓存空间变化率;其中,INC表示所述缓存空间变化率,SIZE1表示缓存所述访问请求信息所对应的文件前缓存空间大小值,SIZE2表示缓存所述访问请求信息所对应的文件后缓存空间大小值,TOTAL表示缓存空间总大小值。

具体的,所述根据所述缓存空间变化率更新所述预先更新的访问请求信息数量的阈值,包括:

将所述缓存空间变化率分别与,预设缓存空间变化率最小值和预设缓存空间变化率最大值进行比较,得到一个比较结果;

根据比较结果,得到下一个更新阈值。

具体的,所述根据比较结果得到下一个更新阈值,包括:

若所述比较结果为缓存空间变化率大于所述预设缓存空间变化率最大值,则判定所述缓存空间变化率增大,将所述预先更新的访问请求信息数量的阈值更新至N1=N0+(INC-MAX)/a;

若比较结果为所述缓存空间变化率小于所述预设缓存空间变化率最小值,则判定所述缓存空间变化率减小,将所述预先更新的访问请求信息数量的阈值更新至N1=N0-(MIN-INC)/b;

其中N1为下一个更新阈值,N0为所述预先更新的访问请求信息数量的阈值,INC表示所述缓存空间变化率,MAX为所述预设缓存空间变化率最大值,MIN为所述预设缓存空间变化率最小值,a和b均为常数。

具体的,所述统计用户发送的访问请求信息的数量,包括:

统计所述用户的访问请求信息中用户的工号、用户的IP地址、用户的姓名中的至少一种的数量。

具体的,所述统计用户发送的访问请求信息的数量,包括:

通过统计用户发送的访问请求信息的频次,统计用户发送的访问请求信息的数量。

本发明实施例还提供了一种缓存装置,包括:

接收模块,用于接收用户发送的访问请求信息,统计用户发送的访问请求信息的数量;

缓存模块,用于在所述访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,将与所述访问请求信息所对应的文件缓存至高速缓存区;

计算模块,用于计算所述高速缓存区的缓存空间变化率;

更新模块,用于根据所述缓存空间变化率,更新所述预先更新的访问请求信息数量的阈值,得到下一个更新阈值,以使所述访问请求信息的数量超过所述下一个更新阈值时,将与所述访问请求信息所对应的文件缓存至所述高速缓存区。

具体的,所述计算模块,具体用于:

根据公式:INC=|(SIZE2-SIZE1)/TOTAL|,计算所述缓存空间变化率;其中,INC表示所述缓存空间变化率,SIZE1表示缓存所述访问请求信息所对应的文件前缓存空间大小值,SIZE2表示缓存所述访问请求信息所对应的文件后缓存空间大小值,TOTAL表示缓存空间总大小值。

具体的,所述更新模块,包括:

第一更新子模块,用于将所述缓存空间变化率分别与,预设缓存空间变化率最小值和预设缓存空间变化率最大值进行比较,得到一个比较结果;

第二更新子模块,用于根据比较结果,得到下一个更新阈值。

具体的,所述第二更新子模块,具体用于:

若所述比较结果为缓存空间变化率大于所述预设缓存空间变化率最大值,则判定所述缓存空间变化率增大,将所述预先更新的访问请求信息数量的阈值更新至N1=N0+(INC-MAX)/a;

若比较结果为所述缓存空间变化率小于所述预设缓存空间变化率最小值,则判定所述缓存空间变化率减小,将所述预先更新的访问请求信息数量的阈值更新至N1=N0-(MIN-INC)/b;

其中N1为下一个更新阈值,N0为所述预先更新的访问请求信息数量的阈值,INC表示所述缓存空间变化率,MAX为所述预设缓存空间变化率最大值,MIN为所述预设缓存空间变化率最小值,a和b均为常数。

具体的,所述接收模块,具体用于统计所述用户的访问请求信息中用户的工号、用户的IP地址、用户的姓名中的至少一种的数量。

具体的,所述接收模块,具体用于通过统计用户发送的访问请求信息的频次,统计用户发送的访问请求信息的数量。

本发明实施例提供的一种缓存方法及装置,通过计算高速缓存区的缓存空间变化率,更新预先更新的访问请求信息数量的阈值,得到下一个更新阈值,CDN缓存服务器根据高速缓存区的缓存空间变化率自适应缓存空间的大小,减轻了大量用户访问文件时的压力,根据用户在不同时期的访问状态调整访问请求信息数量的阈值,提高了高速缓存区的利用率,改善服务器的缓存效果,使服务器实现智能缓存。本方法当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例缓存方法的流程图;

图2为本发明实施例在访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,将与访问请求信息所对应的文件缓存至高速缓存区之前的流程图;

图3为本发明实施例计算高速缓存区的缓存空间变化率的流程图;

图4为本发明实施例更新预先更新的访问请求信息数量的阈值的流程图;

图5为本发明实施例缓存装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

CDN缓存服务器的缓存效率受网络缓存技术的直接影响,CDN缓存服务器包含普通磁盘区和高速缓存区,现有的缓存方法是根据用户访问文件的频次,来判断文件热度,将访问热度低的文件进行淘汰,将热度高的文件放入高速缓存区。在用户访问的高峰期和非高峰期的缓存方法相同,然而高速缓存区空间大小固定,能接受缓存的文件数量有限,当处于用户访问文件的高峰期,即文件被多次访问时,伴随着高速缓存区不断缓存文件,给服务器带来很大的缓存压力,当处于用户访问文件的非高峰期,即文件访问次数低,此时需要很长一段时间才能缓存该文件,高速缓存区的利用率较低,影响了缓存效果。本发明实施例的目的在于提供一种缓存方法及装置,减轻CDN缓存服务器的缓存压力,提高高速缓存区的利用率,改善缓存效果。

下面首先对本发明实施例提供的缓存方法进行详细说明。

图1为本发明实施例提供的缓存方法的流程图,具体包括以下步骤:

步骤101,接收用户发送的访问请求信息,统计用户发送的访问请求信息的数量。

当用户想要访问文件时,会向服务器发送该文件的访问请求信息,服务器接收用户发送的访问请求信息,并统计用户发送的访问请求信息的数量。统计访问请求信息数量的目的是为了统计文件被访问的热度,统计方式有多种。例如,当多个用户向服务器发送访问请求信息时,服务器的普通磁盘区接收用户发送的访问请求信息,并且统计访问请求信息的数量,这个访问请求信息的数量可以是多个用户发送的,也可以来自于一个用户的多次访问发送的。

具体的,统计用户发送的访问请求信息的数量,包括:

统计用户的访问请求信息中用户的工号、用户的IP地址、用户的姓名中的至少一种的数量。

用户的工号、用户的IP地址、用户的姓名都可以代表用户,统计用户的访问请求信息的数量可以通过统计访问请求信息中用户的工号、用户的IP地址、用户的姓名中的至少一种的数量的方法。

具体的,统计用户发送的访问请求信息的数量,包括:

通过统计用户发送的访问请求信息的频次,统计用户发送的访问请求信息的数量。

当用户想要对某个文件分段访问时,会集中多次的访问该文件,统计用户发送的访问请求信息的频次,也可以得到用户发送的访问请求信息的数量。

步骤102,在访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,将与访问请求信息所对应的文件缓存至高速缓存区。

预先更新的访问请求信息数量的阈值不是根据用户需求或者工业需要设定的,这个阈值是由预设访问请求信息数量的阈值决定的,而预设访问请求信息的阈值是由服务器的特性决定的,根据高速缓存区的缓存空间大小决定预设访问请求信息的阈值,预设访问请求信息的阈值最小值为2。服务器统计用户发送的访问请求信息的数量,当访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,就会将与该访问请求信息所对应的文件放入高速缓存区。

步骤103,计算高速缓存区的缓存空间变化率。

在文件被放入高速缓存区后,高速缓存区的自由空间会发生变化,此时需要计算高速缓存区的缓存空间变化率,可以得到在缓存了一定量的文件后或者在一段时间内的高速缓存区的缓存空间变化率。

步骤104,根据缓存空间变化率,更新预先更新的访问请求信息数量的阈值,得到下一个更新阈值,以使访问请求信息的数量超过下一个更新阈值时,将与访问请求信息所对应的文件缓存至高速缓存区。

由步骤103中计算得到的缓存空间变化率,可以更新预先更新的访问请求信息数量的阈值,得到下一个更新阈值,缓存空间变化率反映了在一段时间内,缓存空间内缓存文件的速率,当缓存空间变化率的数值比较大时,表明在一段时间内,缓存文件的数量较多,缓存速率较快;当缓存空间变化率的数值比较大时,表明在一段时间内,缓存文件的数量较少,缓存速率较慢。

本发明实施例提供的一种缓存方法,通过计算高速缓存区的缓存空间变化率,更新预先更新的访问请求信息数量的阈值,得到下一个更新阈值,CDN缓存服务器根据高速缓存区的缓存空间变化率自适应缓存空间的大小,根据用户在不同时期的访问状态调整访问请求信息数量的阈值,提高了高速缓存区的利用率,改善服务器的缓存效果,使服务器实现智能缓存。

具体的,在访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,将与访问请求信息所对应的文件缓存至高速缓存区之前,得到预先更新的访问请求信息数量的阈值的流程,如图2所示,包括如下步骤:

步骤201,接收用户发送的访问请求信息,统计用户发送的访问请求信息的数量。

当用户想要访问文件时,会向服务器发送该文件的访问请求信息,服务器接收用户发送的访问请求信息,并统计用户发送的访问请求信息的数量。

步骤202,在访问请求信息的数量超过预设访问请求信息数量的阈值时,将与访问请求信息所对应的文件缓存至高速缓存区。

服务器统计用户发送的访问请求信息的数量,当访问请求信息的数量超过预设访问请求信息数量的阈值时,就会将与该访问请求信息所对应的文件放入高速缓存区。预设访问请求信息的阈值是由服务器的特性决定的,根据高速缓存区的缓存空间大小决定预设访问请求信息的阈值。

步骤203,计算高速缓存区的缓存空间变化率。

在文件被放入高速缓存区后,高速缓存区的空闲空间会发生变化,此时需要计算高速缓存区的缓存空间变化率,可以得到在缓存了文件后或者在预设时间间隔后的高速缓存区的缓存空间变化率。预设时间间隔根据用户需求或者工业需要决定,本发明实施例的预设时间间隔是由用户需求灵活决定的,例如,用户想要统计10分钟内服务器缓存文件的情况,则会计算得到高速缓存区10分钟内的缓存空间变化率。

步骤204,根据所述缓存空间变化率,更新预设访问请求信息数量的阈值,得到预先更新的访问请求信息数量的阈值。

根据步骤203中计算得到的缓存空间变化率,可以更新预设访问请求信息数量的阈值,得到预先更新的访问请求信息数量的阈值。

具体的,计算高速缓存区的缓存空间变化率的流程如图3所示:

步骤301,记录缓存空间总大小值TOTAL、缓存访问请求信息所对应的文件前缓存空间大小值SIZE1、缓存访问请求信息所对应的文件后缓存空间大小值SIZE2。

高速缓存区的缓存空间大小值是固定的,由服务器的特性决定,记为TOTAL;缓存访问请求信息所对应的文件前缓存空间大小值SIZE1和缓存访问请求信息所对应的文件后缓存空间大小值SIZE2分别是经过预设时间间隔前、预设时间间隔后的缓存空间大小值。

步骤302,根据公式:INC=|(SIZE2-SIZE1)/TOTAL|,计算缓存空间变化率。

缓存空间变化率是经过预设时间间隔后与预设时间间隔前的差值与,缓存空间总大小值的比值,表示在预设时间间隔内的缓存空间变化率。例如,缓存空间总大小值TOTAL为100,缓存访问请求信息所对应的文件前缓存空间大小值SIZE1为80,缓存访问请求信息所对应的文件后缓存空间大小值SIZE2为60,则根据公式,得到缓存空间变化率INC为(1/5)。

具体的,根据缓存空间变化率更新预先更新的访问请求信息数量的阈值,包括:

将缓存空间变化率分别与,预设缓存空间变化率最小值和预设缓存空间变化率最大值进行比较,得到一个比较结果;

根据比较结果,得到下一个更新阈值。

预设缓存空间变化率最小值和预设缓存空间变化率最大值是根据用户需求或者工业需要任意设定的,本发明实施例的预设缓存空间变化率最小值小于,预设缓存空间变化率最大值,预设缓存空间变化率最小值和预设缓存空间变化率最大值是根据用户长期测算分析得到的,分别为0.4和1.2。由步骤302得到的缓存空间变化率,与预设缓存空间变化率最小值和预设缓存空间变化率最大值进行比较,比较结果将会影响下一个更新阈值。

图4为本发明实施例中更新预先更新的访问请求信息数量的阈值的流程图,包括如下步骤:

步骤401,将缓存空间变化率分别与,预设缓存空间变化率最小值和预设缓存空间变化率最大值进行比较,这一步骤中还包括:

步骤401a,若比较结果为缓存空间变化率大于预设缓存空间变化率最大值,则判定缓存空间变化率增大,将预先更新的访问请求信息数量的阈值增大到N1=N0+(INC-MAX)/a;

当缓存空间变化率大于预设缓存空间变化率最大值时,则表明此时超过缓存空间所能允许的缓存空间变化率的最大值,正值服务器的高峰期,用户发送访问请求信息的数量多,需要将预先更新的访问请求信息数量的阈值增大,并且增大到N1=N0+(INC-MAX)/a,才能减轻高速缓存区的缓存压力,其中N1为下一个更新阈值,N0为预先更新的访问请求信息数量的阈值,MAX为预设缓存空间变化率最大值,a为常数。

步骤401b,若比较结果为缓存空间变化率小于预设缓存空间变化率最小值,则判定缓存空间变化率减小,将预先更新的访问请求信息数量的阈值减小到N1=N0-(MIN-INC)/b;

当缓存空间变化率小于预设缓存空间变化率最小值时,则表明此时的缓存空间变化率已经小于缓存空间变化率的最小值,此时是服务器的非高峰期,用户发送访问请求信息的数量少,缓存空间没有得到充分利用,需要将预先更新的访问请求信息数量的阈值减小,并且减小到N1=N0-(MIN-INC)/b,才能提高高速缓存区的利用率,其中N1为下一个更新阈值,N0为预先更新的访问请求信息数量的阈值,MIN为预设缓存空间变化率最小值,b为常数。例如,当计算得到的缓存空间变化率小于0.4时,将预先更新的访问请求信息数量的阈值减小到N1=N0-(0.4-INC)/b;当计算得到的缓存空间变化率大于1.2时,将预先更新的访问请求信息数量的阈值增大到N1=N0+(INC-1.2)/a。

本发明所公开的缓存方法,通过计算缓存空间变化率更新访问请求信息数量的阈值,使得服务器在用户访问文件的不同时间内实现智能缓存。当缓存空间变化率预设缓存空间变化率最大值时,表明超过缓存空间所能允许的缓存空间变化率的最大值,用户发送访问请求信息的数量多,高速缓存区需要不断缓存文件,缓存压力大,此时需要提高访问请求信息数量的阈值;当缓存空间变化率小于预设缓存空间变化率最小值时,表明此时缓存空间变化率已经小于缓存空间变化率的最小值,用户发送访问请求信息的数量少,缓存空间没有得到充分利用,此时需要降低访问请求信息数量的阈值,使得文件在访问次数少的情况下得以缓存,以提高缓存区的利用率。本发明所提供的缓存方法通过更新访问请求信息数量的阈值,不断适应空闲缓存空间的大小变化,可以有效减轻高峰期的缓存压力,提高非高峰期的缓存利用率。

本发明实施例还提供了一种缓存装置,图5为本发明实施例的装置结构示意图,该装置包括:

接收模块501,用于接收用户发送的访问请求信息,统计用户发送的访问请求信息的数量;

缓存模块502,用于在访问请求信息的数量超过预先更新的访问请求信息数量的阈值时,将与访问请求信息所对应的文件缓存至高速缓存区;

计算模块503,用于计算高速缓存区的缓存空间变化率;

更新模块504,用于根据缓存空间变化率,更新预先更新的访问请求信息数量的阈值,得到下一个更新阈值,以使访问请求信息的数量超过下一个更新阈值时,将与访问请求信息所对应的文件缓存至高速缓存区。

本发明实施例提供的一种缓存装置,通过计算高速缓存区的缓存空间变化率,更新预先更新的访问请求信息数量的阈值,得到下一个更新阈值,CDN缓存服务器根据高速缓存区的缓存空间变化率自适应缓存空间的大小,根据用户在不同时期的访问状态调整访问请求信息数量的阈值,提高了高速缓存区的利用率,改善服务器的缓存效果,使服务器实现智能缓存。

需要说明的是,本发明实施例的装置是应用上述缓存方法的装置,则上述缓存方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

具体的,计算模块,具体用于:

根据公式:INC=|(SIZE2-SIZE1)/TOTAL|,计算缓存空间变化率;其中,INC表示缓存空间变化率,SIZE1表示缓存访问请求信息所对应的文件前缓存空间大小值,SIZE2表示缓存访问请求信息所对应的文件后缓存空间大小值,TOTAL表示缓存空间总大小值。

具体的,更新模块,包括:

第一更新子模块,用于将缓存空间变化率分别与,预设缓存空间变化率最小值和预设缓存空间变化率最大值进行比较,得到一个比较结果;

第二更新子模块,用于根据比较结果,得到下一个更新阈值。

具体的,第二更新子模块,具体用于:

若比较结果为缓存空间变化率大于预设缓存空间变化率最大值,则判定缓存空间变化率增大,将预先更新的访问请求信息数量的阈值更新至N1=N0+(INC-MAX)/a;

若比较结果为缓存空间变化率小于预设缓存空间变化率最小值,则判定缓存空间变化率减小,将预先更新的访问请求信息数量的阈值更新至N1=N0-(MIN-INC)/b;

其中N1为下一个更新阈值,N0为预先更新的访问请求信息数量的阈值,INC表示缓存空间变化率,MAX为预设缓存空间变化率最大值,MIN为预设缓存空间变化率最小值,a和b均为常数。

具体的,接收模块,具体用于统计用户的访问请求信息中用户的工号、用户的IP地址、用户的姓名中的至少一种的数量。

具体的,接收模块,具体用于通过统计用户发送的访问请求信息的频次,统计用户发送的访问请求信息的数量。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1