基于CDN的缓存方法、装置及系统与流程

文档序号:16200132发布日期:2018-12-08 06:31阅读:180来源:国知局
基于CDN的缓存方法、装置及系统与流程

本申请涉及数据通信相关技术领域,尤其基于cdn的缓存方法、装置及系统。

背景技术

随着科技的发展,互联网的普及,人们常常需要再互联网上下载一些文件。为了提高人们浏览和下载文件的速度相关人员提出了cdn(contentdeliverynetwork,内容分发网络)技术。cdn的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的环节,使内容传输的更快、更稳定。通过在网络各处放置的节点所构成的在现有的互联网基础之上的一层智能虚拟网络,cdn系统能够实时地根据网络流量和各节点的连接、负载状况以及到客户端的距离和响应时间等综合信息将客户端的请求重新导向离客户端最近的服务节点,即cdn边缘节点上。

目前通过cdn技术进行文件下载的方式有两种,一种方式是:当客户端请求某个文件的一部分数据信息时,cdn边缘节点便对整个文件进行缓存。这种方式下,cdn边缘节点缓存了大量的无用数据信息,浪费了cdn边缘节点的缓存空间降低了有效数据信息缓存速度。另一种方式是当客户端请求某个文件的一部分数据信息时,cdn边缘节点便缓存客户端请求数据信息。例如,将一个文件的数据分为n片数据,当客户端请求第k片数据时,缓存第k片数据,当客户端请求第k+1片数据时,缓存第k+1片数据。如此设置,虽然节省了cdn边缘节点的缓存空间,但是只有当客户端请求之后才会缓存对应的文件的数据信息,之后客户端从cdn边缘节点获取数据。从客户端发出请求到客户端获取数据的时间,为cdn边缘节点缓存对应的数据的时间与客户端从cdn边缘节点获取数据的时间之和。这种方式从客户端发出请求到客户端获取数据的时间较长。



技术实现要素:

为至少在一定程度上克服相关技术中存在的问题,本申请提供一种基于cdn的缓存方法、装置及系统。

根据本申请实施例的第一方面,提供一种基于cdn的缓存方法,包括:

获取客户端的下载第k片数据的数据请求;

确保缓存所述第k片数据;

向所述客户端发送所述第k片数据,并确保缓存第k+1片数据。

可选的,所述确保缓存所述第k片数据包括:

判断是否已缓存所述第k片数据;

如果不是,则缓存第k片数据。

可选的,所述确保缓存第k+1片数据,还包括:

判断是否已缓存所述第k+1片数据;

如果不是,则缓存所述第k+1片数据。

可选的,所述缓存所述第k片数据,之后还包括:

标记第k+1片数据为需要缓存;

所述判断是否已缓存所述第k+1片数据,包括:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存。

可选的,所述缓存的方式包括:

使用超文本传输http协议中的range请求进行缓存。

根据本申请实施例的第二方面,提供一种基于cdn的缓存装置,其特征在于,包括:

获取模块,获取客户端的下载第k片数据的数据请求;

确保模块,用于确保缓存所述第k片数据;

发送模块,用于向所述客户端发送所述第k片数据,并确保缓存第k+1片数据。

可选的,所述确保模块,具体用于判断是否已缓存所述第k片数据;如果不是,则缓存第k片数据。

可选的,所述发送模块用于确保缓存第k+1片数据时,具体用于:

判断是否已缓存所述第k+1片数据;

如果不是,则缓存所述第k+1片数据。

可选的,所述发送模块还用于,在所述缓存所述第k+1片数据,之后,

标记第k+2片数据为需要缓存;

所述发送模块用于判断是否已缓存所述第k+1片数据时,具体用于:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存,否则通过检查自身数据库判断是否已缓存所述第k+1片数据。

可选的,所述缓存的方式包括:

使用超文本传输http协议中的range请求进行缓存。

根据本申请实施例的第三方面,提供一种基于cdn的缓存系统,其特征在于,包括:cdn服务器、cdn节点、客户端;所述cdn节点分别与所述cdn服务器和所述客户端相连接。

所述cdn服务器,用于接收客户端通过通过cdn节点向所述cdn服务器发送数据请求,其中,所述数据请求包括:下载第k片数据;

所述cdn服务器,还用于确保所述cdn节点缓存所述第k片数据;

所述cdn服务器,还用于控制所述cdn节点向所述客户端发送所述第k片数据,并确保所述cdn节点缓存第k+1片数据。

可选的,所述cdn服务器用于确保所述cdn节点缓存所述第k片数据时,具体用于:

判断所述cdn节点是否已缓存所述第k片数据;

如果不是,则控制所述cdn节点缓存所述第k片数据。

根据本申请实施例的第四方面,提供另一种基于cdn的缓存装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为

获取客户端的下载第k片数据的数据请求;

确保缓存所述第k片数据;

向所述客户端发送所述第k片数据,并确保缓存第k+1片数据。

可选的,所述确保缓存所述第k片数据时具体被配置为:

判断是否已缓存所述第k片数据;

如果不是,则缓存第k片数据。

可选的,所述确保缓存第k+1片数据时,具体被配置为:

判断是否已缓存所述第k+1片数据;

如果不是,则缓存所述第k+1片数据。

可选的,所述缓存所述第k+1片数据,之后还被配置为:

标记第k+2片数据为需要缓存;

所述判断是否已缓存所述第k+1片数据,包括:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存,否则,检索自身数据库以判断是否已缓存所述第k+1片数据。

根据本申请实施例的第五方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行一种缓存方法,所述方法包括:

获取客户端的下载第k片数据的数据请求;

确保缓存所述第k片数据;

向所述客户端发送所述第k片数据,并确保缓存第k+1片数据。

可选的,所述确保缓存所述第k片数据包括:

判断是否已缓存所述第k片数据;

如果不是,则缓存第k片数据。

可选的,所述确保缓存第k+1片数据,还包括:

判断是否已缓存所述第k+1片数据;

如果不是,则缓存所述第k+1片数据。

可选的,所述缓存所述第k+1片数据,之后还包括:

标记第k+1片数据为需要缓存;

所述判断是否已缓存所述第k+1片数据,包括:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存。

可选的,所述缓存的方式包括:

使用超文本传输http协议中的range请求进行缓存。

本申请提供的技术方案可以包括以下有益效果:

基于访问局部性原理,当获取客户端请求下载第k片数据后,有很大的可能会获取客户端请求下载第k+1片数据的情况,本实施例提供的方法中,向客户端发送所述第k片数据时,缓存第k+1片数据。如此,当获取客户端下载第k+1片数据的请求时,可以直接向客户端发送cdn边缘节点已缓存的所述第k+1片数据。与背景技术中的方案相比较,从获取客户端发出的请求到向客户端发送数据的时间更短。同时,本方案中,只有向所述客户端发送所述第k片数据时,所述cdn边缘节点才缓存第k+1片数据,而不是直接缓存整个文件,节约cdn边缘节点的缓存空间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1a是本申请一个实施例提供的一种基于cdn的缓存方法的流程示意图。

图1b是本申请一个实施例提供的一种基于cdn的缓存方法的流程示意图。

图2是本申请另一个实施例提供的一种基于cdn的缓存方法的流程示意图。

图3是本申请另一个实施例提供的一种基于cdn的缓存装置流程示意图。

图4是本申请一个实施例提供的一种基于cdn的缓存系统的结构示意图。

图5是本申请另一个实施例提供的一种基于cdn的缓存装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

图1是本申请一个实施例提供的基于cdn的缓存方法的流程图。参见图1,本实施例的方法可以包括:

步骤110:获取客户端的下载第k片数据的数据请求;

步骤120:确保缓存第k片数据;

步骤130:向客户端发送第k片数据,并确保缓存第k+1片数据。

基于访问局部性原理,当客户端请求了第k片数据后,有很大的可能会请求第k+1片数据,本实施例提供的方法中,客户端接收向客户端发送第k片数据时,cdn边缘节点缓存第k+1片数据。如此设置,当客户端请求第k+1片数据时,客户端可以直接接收cdn边缘节点已缓存的第k片数据。与背景技术中的方案相比较,从客户端发出请求到客户端获取数据的时间更短。同时,本方案中,只有客户端接收向客户端发送第k片数据时,cdn边缘节点才缓存第k+1片数据,而不是直接缓存整个文件,不会浪费了cdn边缘节点的缓存空间。

可选的,步骤120,包括:

判断是否已缓存第k片数据;

如果不是,则缓存第k片数据。

进一步的,步骤130中,并确保缓存第k+1片数据包括:

步骤131,判断是否已缓存第k+1片数据;

步骤132,如果不是,则缓存第k+1片数据。

进一步的,步骤132中,则缓存第k+1片数据之后还包括;

标记第k+2片数据为需要缓存;

步骤131,具体包括:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存,否则,检索自身数据库以判断是否已缓存第k+1片数据。

基于访问局部性原理,认为当cdn边缘节点缓存第k+1片数据时,cdn边缘节点缓存有第k+2片数据的概率较大;当cdn边缘节点没有缓存第k+1片数据时,cdn边缘节点缓存没有有第k+2片数据的概率较大;故,根据第k+1片数据是没有被缓存,来估计第k+2片数据也没有被经缓存,避免了判断第k+2片数据是否已经缓存的步骤,有效的提高了cdn边缘节点的效率。

进一步的,缓存方式包括使用超文本传输http协议中的range请求进行缓存。

http协议中的range是一种现有的缓存方式。可以有效的缓存数据。

图2是本申请一个实施例提供的基于cdn的缓存方法的具体的流程图。为了便于理解图2引入了第k+2片数据,本实施例的方法可以包括:

步骤201:获取客户端的下载第k片数据请求;

步骤201:判断cdn边缘节点是否已缓存第k片数据;

步骤203:若没有缓存第k片数据,则缓存第k片数据;

步骤204:向客户端发送第k片数据;

步骤205:判断是否已经标记第k+1片数据为需要缓存;

步骤206若已经标记第k+1片数据为需要进行缓存,则缓存第k+1片数据;

步骤207;判断cdn边缘节点是已缓存第k+1片数据;

步骤208;若已缓存第k片数据,则执行以下步骤;

步骤209;若没有缓存第k片数据,缓存第k片数据,并标记第k+2片数据为需要缓存;

步骤210:获取客户端下载第k+1片数据的请求;

步骤211:令k的值为k+1;并返回执行向步骤205和步骤206。

图3是本申请一个实施例提供的基于cdn的缓存装置的结构图。本实施例的装置用于执行本申请提供的基于cdn的缓存方法,参见图3,本实施例的装置包括:

获取模块301,获取客户端的下载第k片数据的数据请求;

确保模块302,用于确保缓存第k片数据;

发送模块303,用于向客户端发送第k片数据,并确保缓存第k+1片数据。

可选的,确保模块302,具体用于判断是否已缓存第k片数据;如果不是,则缓存第k片数据。

可选的,发送模块303用于确保缓存第k+1片数据时,具体用于:

判断是否已缓存第k+1片数据;

如果不是,则缓存第k+1片数据。

可选的,发送模块303还用于,在缓存第k片数据,之后,

标记第k+1片数据为需要缓存;

发送模块用于判断是否已缓存第k+1片数据时,具体用于:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存,否则通过检查自身数据库判断是否已缓存第k+1片数据。

可选的,缓存的方式包括:

使用超文本传输http协议中的range请求进行缓存。

图4是本申请一个实施例提供的基于cdn的缓存系统的结构图。本实施例的装置用于执行本申请提供的基于cdn的缓存系统,参见图4,本实施例的系统包括:

cdn服务器401、cdn节点402、客户端403;cdn节点402分别与cdn服务器401和客户端403相连接。

cdn服务器401,用于接收客户端通过通过cdn节点402向cdn服务器403发送数据请求,其中,数据请求包括:下载第k片数据;

cdn服务器401,还用于确保cdn节点402缓存第k片数据;

cdn服务器401,还用于控制cdn节点402向客户端发送第k片数据,并确保cdn节点402缓存第k+1片数据。

可选的,cdn服务器402用于确保cdn节点402缓存第k片数据时,具体用于:

判断cdn节点402是否已缓存第k片数据;

如果不是,则控制cdn节点402缓存第k片数据。

图4是本申请另一个实施例提供的基于cdn的缓存装置的结构图。本实施例的装置用于执行本申请提供的基于cdn的缓存方法,参见图4,本实施例的装置包括:处理器502;用于存储处理器可执行指令的存储器501;其中,处理器502被配置为

获取客户端的下载第k片数据的数据请求;

确保缓存第k片数据;

向客户端发送第k片数据,并确保缓存第k+1片数据。

可选的,缓存方式包括使用超文本传输http协议中的range请求进行缓存。

可选的,确保缓存第k片数据时具体被配置为:

判断是否已缓存第k片数据;

如果不是,则缓存第k片数据。

可选的,确保缓存第k+1片数据时,具体被配置为:

判断是否已缓存第k+1片数据;

如果不是,则缓存第k+1片数据。

可选的,缓存第k片数据,之后还被配置为:

标记第k+1片数据为需要缓存;

判断是否已缓存第k+1片数据,包括:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存,否则,检索自身数据库以判断是否已缓存第k+1片数据。

根据本申请实施例的第五方面,提供一种非临时性计算机可读存储介质,当存储介质中的指令由处理器执行时,使得处理器能够执行一种缓存方法,方法包括:

获取客户端的下载第k片数据的数据请求;

确保缓存第k片数据;

向客户端发送第k片数据,并确保缓存第k+1片数据。

可选的,确保缓存第k片数据包括:

判断是否已缓存第k片数据;

如果不是,则缓存第k片数据。

可选的,确保缓存第k+1片数据,还包括:

判断是否已缓存第k+1片数据;

如果不是,则缓存第k+1片数据。

可选的,缓存第k片数据,之后还包括:

标记第k+1片数据为需要缓存;

判断是否已缓存第k+1片数据,包括:

判断是否标记第k+1片数据为需要缓存;

如果是,则判定第k+1片数据需要缓存。

可选的,缓存的方式包括:

使用超文本传输http协议中的range请求进行缓存。

关于上述实施例中的装置,其中系统的各个部分的具体工作方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并同时本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中同时由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而同时,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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