缓存资源的刷新方法、装置及系统与流程

文档序号:30342736发布日期:2022-06-08 08:24阅读:99来源:国知局
缓存资源的刷新方法、装置及系统与流程

1.本技术涉及互联网领域,具体而言,涉及一种缓存资源的刷新方法、装置及系统。


背景技术:

2.传统http(超文本传输协议hypertext transfer protocol的缩写)网站中,文件刷新的方式是:对资源文件设置过期时间,在文件过期后,客户端到源站验证本地缓存文件是否可用,如果源站对该文件没有修改,则告知客户端文件未修改,可使用本地缓存文件。
3.随着互联网的发展,对网站访问的用户群体也会随着增多,当网站的访问量到达一定程度后,就引入了缓存服务器的使用,缓存服务器的目的是为了减少对源站的请求,通常情况下,引入缓存服务器后,文件过期时还是需要回源验证的。对于这个问题,可以充分利用缓存服务器的优势,对缓存服务器和客户端设置不同的刷新过期时间,当源站资源更新的时候再通知缓存服务器更新资源,这样在及时更新客户端缓存的情况下,又能减少源站的请求。
4.比如一类资源对于客户端的过期时间设置5分钟,对于缓存服务器过期时间设置一天,源站在没有文件更新的情况下,缓存服务器一天只需要回源验证一次;在源站有资源更新的情况下,在更新资源的时候,同时通知缓存服务器资源已更新,而客户端每5分钟会来缓存服务器验证资源是否更新,这样客户端资源能得到及时更新,而源站只需要在文件更新的时候处理这类资源的请求。
5.因此在引入缓存服务器后,文件更新的时候,除了更新源站资源还需要通知缓存服务器更新文件,才能使资源得到及时的更新。随着业务的发展,网站的资源越来越多,使用这种文件刷新方式会变得效率较低。
6.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

7.本技术实施例提供了一种缓存资源的刷新方法、装置及系统,以至少解决相关技术中缓存的刷新效率较低的技术问题。
8.根据本技术实施例的一个方面,提供了一种缓存资源的刷新方法,包括:接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;响应于资源刷新通知,对缓存设备的缓存资源中与资源刷新通知匹配的第一资源进行操作,以使缓存设备不能利用第一资源对用户终端的资源请求进行响应,第一资源与资源请求所请求的资源匹配;在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;将第二资源发送给用户终端。
9.根据本技术实施例的另一方面,还提供了一种缓存资源的刷新方法,包括:接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;响应于资源刷新通知,删除缓存设备的缓存资源中与资源刷新通知匹配的第一资源;在接收到用户终端的资源请求、且不能利用与资源请求匹配的第一资源进行响应的情况下,从源站获取与
资源请求匹配的第二资源;将第二资源发送给用户终端。
10.根据本技术实施例的另一方面,还提供了一种缓存资源的刷新装置,包括:第一接收单元,用于接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;第一处理单元,用于响应于资源刷新通知,对缓存设备的缓存资源中与资源刷新通知匹配的第一资源进行操作,以使缓存设备不能利用第一资源对用户终端的资源请求进行响应,第一资源与资源请求所请求的资源匹配;第一刷新单元,用于在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;第一发送单元,用于将第二资源发送给用户终端。
11.根据本技术实施例的另一方面,还提供了一种缓存资源的刷新装置,包括:第二接收单元,用于接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;第二处理单元,用于响应于资源刷新通知,删除缓存设备的缓存资源中与资源刷新通知匹配的第一资源;第二刷新单元,用于在接收到用户终端的资源请求、且不能利用与资源请求匹配的第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;第二发送单元,用于将第二资源发送给用户终端。
12.根据本技术实施例的另一方面,还提供了一种缓存资源的刷新系统,包括:源站,用于向缓存设备提供与资源请求匹配的第二资源;用户终端,用于在发送资源请求至缓存设备之后,从缓存设备接收与资源请求匹配的第二资源;缓存设备,用于在接收到资源刷新通知的情况下,对缓存资源中与资源刷新通知匹配的第一资源进行操作,以使被操作后的第一资源不能用于对用户终端的资源请求进行响应;在接收到资源请求、且不能利用第一资源进行响应的情况下,将从源站获取的第二资源发送给用户终端,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新,第一资源与资源请求所请求的资源匹配。
13.根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
14.根据本技术实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
15.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法中任一实施例的步骤。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
17.图1是根据本技术实施例的缓存资源的刷新方法的硬件环境的示意图;
18.图2是根据本技术实施例的一种可选的缓存资源的刷新方法的流程图;
19.图3是根据本技术实施例的一种可选的缓存资源的刷新方法的流程图;
20.图4是根据本技术实施例的一种可选的缓存资源的刷新方案的示意图;
21.图5是根据本技术实施例的一种可选的缓存资源的刷新装置的示意图;
22.图6是根据本技术实施例的一种可选的缓存资源的刷新装置的示意图;以及,
23.图7是根据本技术实施例的一种终端的结构框图。
具体实施方式
24.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
25.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
26.根据本技术实施例的一方面,提供了一种缓存资源的刷新方法的方法实施例。
27.可选地,在本实施例中,上述缓存资源的刷新方法可以应用于如图1所示的缓存资源的刷新系统,该系统包括cdn(即内容分发网络content delivery network的简称)源站、多个cdn缓存服务器(即缓存设备,也可称为cdn节点)以及用户终端,源站是cdn网络中的核心,各cdn缓存服务器从源站获取文件缓存到本地,在用户终端请求时向用户终端进行分发。如图1所示,源站通过网络与各cdn缓存服务器连接,用户终端可以通过网络为之适配的cdn缓存服务器(一般是本地的cdn缓存服务器),上述网络包括但不限于:广域网、城域网或局域网,用户终端并不限定于pc、手机、平板电脑等。
28.本技术实施例的缓存资源的刷新方法可以由cdn缓存服务器来执行,图2是根据本技术实施例的一种可选的缓存资源的刷新方法的流程图,如图2所示,该方法可以包括以下步骤:
29.步骤s202,cdn缓存服务器接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新,即正则刷新。
30.刷新是指当客户源站资源发生变更后,需要将cdn缓存服务器上对应资源的缓存删除,用户再次访问此资源时会从源站获取更新后的资源,此操作称之为刷新。
31.正则刷新是指当客户源站某些指定条件的资源批量发生变更时,可以使用一条指令描述这些发生变更的资源,即通过正则表达式描述所有匹配变更的资源,这样客户(即使用cdn服务的公司、平台等)可以通过一条刷新指令刷新多条资源,此方法称之为正则刷新。
32.资源刷新通知是cdn刷新模块发送的,cdn刷新模块可以是一个单独的服务器,用于集中处理资源刷新通知,运行时接收各客户侧发送的资源刷新通知,将其转发到各个cdn缓存服务器;cdn刷新模块可以作为cdn源站的一个附属功能集成在cdn源站上;cdn刷新模块还可以作为客户服务器侧的一个附属功能集成在客户服务器上,由客户去触发刷新。
33.正则表达式是对字符串操作的一种逻辑公式,可用预先定义好的一些特定字符、
及这些特定字符的组合,组成一个或多个“规则字符串”,这个“规则字符串”用来表达对资源的一种过滤逻辑。
34.例如,在本技术的技术方案中,“规则字符串”至少包括资源地址,这个地址可以具体到是某个特定资源的url(即统一资源定位器uniform resource locator的简称)地址,如http://123.com/abc/a.mv就是指abc这一目录下的a.mv这一个文件;这个地址还可以资源集合的地址,如http://123.com/abc就是指abc这一目录(该目录下可以包括多个资源),由于资源刷新通知中含有目录,此时资源刷新通知也可以理解为是目录刷新通知。
35.上述规则字符串还可以包括属性信息,即此时规则字符串就包括资源地址和属性信息,在进行匹配时就是从符合该资源地址的所有资源中过滤出属性信息也匹配的资源,如“http://123.com/abc/”&“.mv”就是在abc这一目录下寻找格式为“.mv”的文件,属性信息除了可以是格式外,还可以时缓存时间、资源大小、资源来源等,通过地址和属性信息的组合,可以实现各种资源的灵活过滤,例如:(“url1”&“.mv”)or(“url2”&“time《2021年11月26日21时0分0秒”)表示:从url1这个地址中筛选出格式为“.mv”的文件,并从url2这个地址中筛选出缓存时间早于2021年11月26日21时0分0秒的资源。
36.步骤s204,响应于资源刷新通知,cdn缓存服务器对缓存资源中与资源刷新通知匹配的第一资源进行操作,以使缓存设备不能利用第一资源对用户终端的资源请求进行响应,第一资源与资源请求所请求的资源匹配。在资源请求中存在用于唯一表示所请求资源的信息,如资源标识、资源url等,后续以资源url为例进行说明。
37.上述操作的目的就是让用户终端请求第一资源时,不能从缓存设备直接获取资源,至于此处的具体操作可以根据需求设定,如直接删除、设为过期等。
38.步骤s206,在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,cdn缓存服务器从源站获取与资源请求匹配的第二资源。
39.cdn缓存服务器在接收到资源请求时,若资源请求中用于唯一表示所请求资源的信息与正则表达式匹配,如资源请求中的url(和第一资源的url相同)落在正则表达式表示的地址范围内,如资源的url“http://123.com/abc/a.mv”落在了正则表达式表示的地址范围“http://123.com/abc/”内,则认为需要对该资源请求中的url进行回源刷新,虽然源请求中的url和第一资源的url相同,但是由于不存在能够用于直接响应的第一资源,所以不会直接返回第一资源,而是会从cdn源站按照该url重新拉去新的资源,即第二资源,第二资源也是客户侧想要用来替换第一资源的资源,如新版本的软件、更新的视频等。
40.步骤s208,cdn缓存服务器将第二资源发送给用户终端。
41.在本技术的上述方案中,在接收到采用正则表达式的方式指示对缓存资源进行刷新的资源刷新通知的情况下,对缓存设备的缓存资源中与资源刷新通知匹配的第一资源进行操作,以使缓存设备不能利用第一资源对用户终端的资源请求(第一资源与资源请求所请求的资源匹配)进行响应;在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;将第二资源发送给用户终端,方案中采用正则表达式的方式对缓存资源进行刷新,可以实现资源的批量刷新,可以解决相关技术中缓存的刷新效率较低的技术问题,进而达到提高刷新效率的技术效果。
42.在相关技术中,若使用url刷新,需要客户批量提供发生变更的资源列表,使用起来较为复杂,效率较低;若使用目录刷新,需要变更的资源处于多个目录或一个目录下,且
224等函数,计算出上述域名的第二域名哈希值。
53.可选地,在该步骤2中,还可包括:获取第三正则表达式中域名的第三域名哈希值。具体实现方式与上述内容类似。
54.步骤2,在哈希表中不存在以第二域名哈希值为索引的元素的情况下,在哈希表中创建以第二域名哈希值为索引、以第二正则表达式为键值的第二元素。
55.在哈希表中可以保存至少一个元素,每个元素以域名的哈希值为索引key、以包括有该域名的正则表达式为键值value,需要说明的是,每个域名可以对应存在多个正则表达式,换言之,用户可以分多次(用多个正则表达式)对同一域名下不同目录的资源进行分别更新,此时,这多个正则表达式对应的key相同,对应的value中保存了这多个正则表达式。上述value可以采用链表的形式存储数据,在插入新的正则表达式时,可以直接插入对尾。
56.可选地,在该步骤2中,还可包括:在哈希表中不存在以第三域名哈希值为索引的元素的情况下,在哈希表中创建以第三域名哈希值为索引、以第三正则表达式为键值的元素。具体实现方式与上述内容类似。
57.步骤3,在哈希表中已存在以第二域名哈希值为索引的第三元素的情况下,获取第三元素的键值。
58.可选地,在该步骤3中,还可包括:在哈希表中已存在以第三域名哈希值为索引的第四元素的情况下,获取第四元素的键值。
59.步骤4,在第三元素的键值中不存在第二正则表达式的情况下,将第二正则表达式插入至第三元素的键值中。
60.可选地,在该步骤4中,还可包括:在第四元素的键值中不存在第三正则表达式的情况下,将第三正则表达式插入至第四元素的键值中。
61.步骤5,在第三元素的键值中存在第二正则表达式的情况下,将第三元素的键值中第二正则表达式的过期时间从第一时刻更新为第二时刻,第二时刻晚于第一时刻,并将其提交时间更新为本次提交的时间。
62.正则表达式的过期时间可以根据需要设定为t(例如1天),第二正则表达式的原始的过期时间(即第一时刻)为t0+t,t0为上一次的刷新时间,第二正则表达式的变更后的过期时间(即第二时刻)为t1+t,t1为本次的刷新时间。
63.可选地,在该步骤4中,还可包括:在第四元素的键值中不存在第三正则表达式的情况下,将第三正则表达式插入至第四元素的键值中。具体实现方式与上述内容类似。
64.在步骤s204提供的技术方案中,响应于资源刷新通知,cdn缓存服务器对缓存资源中与资源刷新通知匹配的第一资源进行操作,以使cdn缓存服务器不能利用第一资源对用户终端的资源请求进行响应。
65.可选地,为了让cdn缓存服务器不能利用第一资源对用户终端的资源请求进行响应,可以按照如下方式之一对缓存资源中与资源刷新通知匹配的第一资源进行操作:
66.其一,直接删除缓存资源中与资源刷新通知匹配的第一资源,采用这种方式可以节省cdn缓存服务器的存储空间,提高cdn缓存服务器的利用率。
67.其二,将缓存资源中与资源刷新通知匹配的第一资源打上预设标记,预设标记用于表示被标记的资源不能用于对用户终端的请求进行响应。
68.可选地,可用标记“01”表示资源可用,用“10”表示资源不可用,采用这种方式,可
以在某些情况下节约对网络资源的占用。如在更新时,若发现源站的资源(的哈希)与本地资源(的哈希)一致,则说明资源并未真正的发生更新,可以直接恢复该资源的可用性,而不用从源站拉取;再如,在客户侧发布更新之后,发现更新的资源存在问题(如更新版本的软件存在bug),需要回退至前一版本,此时,可以直接在本地启用之前的资源,而不用重新从源站拉取。
69.其三,将缓存资源中与资源刷新通知匹配的第一资源转移至预设存储位置保存,位于预设存储位置的资源不能用于对用户终端的请求进行响应。
70.与上述第二种方案相比,第二种方案需要额外为资源设置标记,会带来额外的开销。第三方案以cdn缓存服务器中的不同缓存目录来区分,例如,将cdn缓存服务器的缓存区域分为a区、b区、c区,a区存放当前有效的资源,b区存放不能用于对用户终端的请求进行响应的资源,c区作为备用区域,c去的存储空间可以扩容至a区或者b区。
71.可选地,正则式和缓存资源都有对应的过期时间,第一资源的过期时间早于与第一资源匹配的第一正则表达式的过期时间,对于上述第二种和第三种技术方案,在对缓存设备的缓存资源中与资源刷新通知匹配的第一资源进行操作之后,若长期没有发生更新,在当前时间达到第一资源的过期时间的情况下,从缓存设备的缓存资源中删除第一资源,可以释放存储空间,提高存储空间的利用率。
72.在步骤s206提供的技术方案中,在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,cdn缓存服务器从源站获取与资源请求匹配的第二资源。
73.可选地,上述步骤s206提供的方案,可以按照如下步骤1-步骤7所示方式进行处理:
74.步骤1,cdn缓存服务器接收用户终端发出的请求。
75.步骤2,cdn缓存服务器从用户终端发送的请求中解析出资源地址url。
76.步骤3,cdn缓存服务器将解析出的资源地址与预存的正则表达式进行匹配,预存的正则表达式包括资源刷新通知中与第一资源匹配的第一正则表达式。包括如下步骤31-步骤35。
77.步骤31,获取资源地址中域名的第一域名哈希值,具体方式与上文类似,从url中截取出域名字段,然后利用哈希算法计算其哈希值。
78.步骤32,在哈希表中不存在以第一域名哈希值为索引的第一元素的情况下,确定资源地址与第一正则表达式不匹配。
79.将计算出的第一域名哈希值与哈希表中各元素的索引key进行比对,若找到了以第一域名哈希值为索引key的元素,则确定该元素是第一元素,具体查找的方式可以根据需要采用以下之一:
80.其一是采用单线程形式查找,利用该单线程运行查找程序(即对元素索引key的哈希值和第一域名哈希值是否相同),可以从哈希表的队首或者对尾开始查找。
81.其二是采用n个线程并行查找,假设整个哈希表有m个元素,m对n取余的值为p,(m-p)/n=q,则前p个线程中的每个线程处理(q+1)个元素,后面(n-p)个线程中的每个线程处理q个元素,具体安排可以是第i个线程的起始元素坐标是:在i的取值为1至q的情况下,(q+1)*(i-1)+1;在i的取值大于q且小于等于n的情况下,(q+1)*p+q*(i-p-1)+1,n、p、q、m、i都是整数。
82.采用并行的方式可以大幅提高处理的效率。
83.步骤33,在哈希表中存在以第一域名哈希值为索引key的第一元素的情况下,获取第一元素的键值。
84.步骤34,在资源地址不位于第一元素的键值中任一正则表达式所表示的地址范围内的情况下,确定资源地址与第一正则表达式不匹配。
85.第一元素的键值中可以包括多个正则表达式,在将资源地址url与正则表达式进行比较时,正则表达式可以是表示具体资源的url,此时直接比较二者是否相同即可,正则表达式还可以是表示资源目录的信息,此时可以看资源地址url是否落在该目录(即范围)内,若是则确认二者匹配成功,否则匹配失败,继续匹配其他正则表达式。
86.步骤35,在资源地址位于第一元素的键值中第一正则表达式所表示的地址范围内的情况下,确定资源地址与第一正则表达式匹配。
87.步骤4,在解析出的资源地址与第一正则表达式匹配的情况下,确定用户终端发送的请求是资源请求(即请求第一资源的请求)。
88.步骤5,获取第一正则表达式的过期时间。
89.步骤6,在当前时间达到过期时间的情况下,将第一正则表达式从第一元素的键值中删除,并将其与哈希表中的剩余元素中的正则表达式按照相同方式进行匹配。
90.在删除第一正则表达式之后,也没有其他匹配的正则表达式,则查看本地是否存在与资源请求所匹配的资源,若存在则可利用缓存的资源来反馈;若不存在则按照资源请求从源站拉取。
91.步骤7,在当前时间未达到第一正则表达式的过期时间的情况下,按照资源请求指示的资源地址从源站获取第二资源。
92.为正则表达式配置过期时间,可以在与资源请求进行匹配时减少匹配时间(过期的正则式会被删除,而不用参与后续的匹配),从而可以提高匹配效率。
93.可选地,在从源站获取与资源请求匹配的第二资源并缓存第二资源之后,若用户请求第二资源,可以按照如下步骤1-步骤6所示方式进行处理:
94.步骤1,cdn缓存服务器接收用户终端的第二请求。
95.步骤2,cdn缓存服务器从用户终端的第二请求中解析出资源地址。
96.步骤3,在第二请求中解析出的资源地址与第一正则表达式匹配的情况下,cdn缓存服务器获取第一正则表达式的过期时间。
97.步骤4,在当前时间未达到过期时间的情况下,cdn缓存服务器获取缓存设备上与第二请求中解析出的资源地址匹配的第二资源。
98.步骤5,在第二资源的缓存时间晚于第一正则表达式的接收时间的情况下,cdn缓存服务器将第二资源发送给用户终端。
99.此处之所以要比较第二资源的缓存时间和第一正则表达式的接收时间,是因为第一正则式的刷新时间随时可能改变,例如,客户侧在一段时间内对目标url(即第一资源的url)的资源连续更新了两次,那么就会发送两次资源刷新通知(均携带第一正则表达式),前述步骤相当于完成了第一次资源刷新通知之后的资源刷新,但是其实在这次刷新资源之后,用户需要再次对资源进行刷新,即此时第一正则式的接收时间变成了第一次资源刷新之后的、第二次资源刷新通知的接收时间,换言之,此时的第二资源就不是最新的资源了,
需要再次刷新。
100.步骤6,在第二资源的缓存时间不晚于第一正则表达式的接收时间的情况下,cdn缓存服务器按照第二请求重新从源站拉取匹配的资源,再将拉取的资源发送给用户终端。
101.在步骤s208提供的技术方案中,cdn缓存服务器将第二资源发送给用户终端,在此之后,若再接收用户终端的请求,在缓存设备上缓存的第二资源与请求所请求的资源匹配(请求中的url与第二资源相同)的情况下,直接将第二资源发送给用户终端。
102.作为另一种可选的实施例,下文结合上述图3所示步骤进一步详述本技术的技术方案:
103.步骤s302,cdn缓存服务器接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新。
104.可选地,在接收资源刷新通知之后,可按照如下方式对资源刷新通知采用的每个正则表达式进行处理:从资源刷新通知获取未处理过的第二正则表达式;对第二正则表达式进行校验,在校验通过的情况下,获取资源刷新通知采用的第二正则表达式中域名的第二域名哈希值,第二正则表达式是资源刷新通知中未处理过的正则表达式;在哈希表中不存在以第二域名哈希值为索引的元素的情况下,在哈希表中创建以第二域名哈希值为索引、以第二正则表达式为键值的第二元素;在哈希表中已存在以第二域名哈希值为索引的第三元素的情况下,获取第三元素的键值;在第三元素的键值中不存在第二正则表达式的情况下,将第二正则表达式插入至第三元素的键值中;在第三元素的键值中存在第二正则表达式的情况下,将第三元素的键值中第二正则表达式的过期时间从第一时刻更新为第二时刻,第二时刻晚于第一时刻。
105.步骤s304,响应于资源刷新通知,cdn缓存服务器删除缓存资源中与资源刷新通知匹配的第一资源。
106.步骤s306,在接收到用户终端的资源请求、且不能利用与资源请求匹配的第一资源进行响应的情况下,cdn缓存服务器从源站获取与资源请求匹配的第二资源。
107.可选地,可按照如下方式确定用户终端发送的请求为资源请求:从用户终端发送的请求中解析出资源地址;将解析出的资源地址与预存的正则表达式进行匹配,预存的正则表达式包括资源刷新通知中与第一资源匹配的第一正则表达式;在解析出的资源地址与第一正则表达式匹配的情况下,确定用户终端发送的请求是资源请求。
108.可选地,将解析出的资源地址与预存的正则表达式进行匹配,包括:获取资源地址中域名的第一域名哈希值;在哈希表中不存在以第一域名哈希值为索引的第一元素的情况下,确定资源地址与第一正则表达式不匹配,其中,哈希表中的每个元素以域名的哈希值为索引、以包括有该域名的正则表达式为键值;在哈希表中存在以第一域名哈希值为索引的第一元素的情况下,获取第一元素的键值;在资源地址不位于第一元素的键值中任一正则表达式所表示的地址范围内的情况下,确定资源地址与第一正则表达式不匹配;在资源地址位于第一元素的键值中第一正则表达式所表示的地址范围内的情况下,确定资源地址与第一正则表达式匹配。
109.可选地,在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源,包括:在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,获取第一正则表达式的过期时间;在当前时间未达到第一正
则表达式的过期时间的情况下,按照资源请求指示的资源地址从源站获取第二资源。
110.在当前时间达到过期时间的情况下,将第一正则表达式从第一元素的键值中删除。
111.步骤s308,cdn缓存服务器将第二资源发送给用户终端。
112.可选地,在将第二资源发送给用户终端之后,接收用户终端的第一请求;在缓存设备上缓存的第二资源与第一请求所请求的资源匹配的情况下,直接将缓存的第二资源发送给用户终端。
113.可选地于,在从源站获取与资源请求匹配的第二资源并缓存第二资源之后,接收用户终端的第二请求;从用户终端的第二请求中解析出资源地址;在第二请求中解析出的资源地址与第一正则表达式匹配的情况下,获取第一正则表达式的过期时间;在当前时间未达到过期时间的情况下,获取缓存设备上与第二请求中解析出的资源地址匹配的第二资源;在第二资源的缓存时间晚于第一正则表达式的接收时间的情况下,将第二资源发送给用户终端。
114.作为又一种可选的实施例,下文结合具体步骤进一步详述本技术的技术方案:
115.步骤1,cdn缓存服务器接收目录刷新通知。
116.资源刷新通知是cdn刷新模块发送的,cdn刷新模块可以是一个单独的服务器,用于集中处理资源刷新通知,运行时接收各客户侧发送的资源刷新通知,将其转发到各个cdn缓存服务器;cdn刷新模块可以作为cdn源站的一个附属功能集成在cdn源站上;cdn刷新模块还可以作为客户服务器侧的一个附属功能集成在客户服务器上,由客户去触发刷新。可以理解的是,cdn缓存服务器接收的目录刷新通知可以是源站通知的,也可以是客户通知cdn厂商的工作人员,由cdn厂商的工作人员按照客户的通知要求向cdn缓存服务器发送目录刷新通知。
117.步骤2,响应于目录刷新通知,cdn缓存服务器对缓存设备的缓存资源中与目录刷新通知匹配的第三资源进行操作,以使缓存设备不能利用第三资源对用户终端的资源请求进行响应,第三资源与资源请求所请求的资源匹配。
118.在接收到目录刷新通知后,可将其插入内存中的数据结构(字典树或优化后类字典树结构),然后响应客户刷新成功,不降低刷新的失效。同时,cdn缓存服务器对缓存设备的缓存资源中与目录刷新通知匹配的第三资源进行操作可以是将第三资源删除,也可以是将第三资源的设置为过期状态,从而使得缓存设备在接收到用户终端的资源请求的情况下,无法使用第三资源响应用户。在对第三资源进行操作后,将目录刷新通知删除,动态的删除目标刷新通知可以降低缓存服务器存储的目录刷新通知,从而降低用户终端资源请求与缓存服务器存储的目录刷新通知的匹配时间。在本技术实施例中,由于对第三资源进行了操作,使得缓存设备不能利用第三资源对用户终端的资源请求进行响应,从而即使删除了目录刷新通知,缓存服务器也不会将第三资源发送给用户终端。
119.步骤3,cdn缓存服务器在接收到用户终端的资源请求、且不能利用第三资源进行响应的情况下,从源站获取与资源请求匹配的第四资源。
120.在本技术实施例中,若用户终端的资源请求指示请求获取第三资源,此时,cdn缓存服务器会将用户终端的资源请求与自身存储的目录刷新通知进行匹配,若匹配成功,则从源站获取刷新后的文件发送给用户终端。若匹配失败,则有可能是步骤2中在对第三资源
进行操作后将相应的目录刷新通知删除了,此时由于对第三资源进行了操作,cdn缓存服务器无法使用第三资源响应用户终端,故而即使匹配失败,cdn缓存服务器也会进行回源,从源站获取与资源请求匹配的第四资源发送给用户终端。
121.步骤4,cdn缓存服务器将第四资源发送给用户终端。
122.在本技术实施例中,在cdn缓存服务器每次新创建资源(即在cdn缓存服务器上缓存从源站获取的资源,如上述第四资源)时,将此资源对应的url写入到磁盘上的一个文件中,并定期对此文件插入到1个有序的db文件(一种数据库文件)中,通过该db文件来维护本cdn缓存服务器缓存的所有资源。
123.在本技术实施例中,cdn缓存服务器可以定期从内存的数据结构中取出1个目录(来源于用户的目录刷新通知),并从有序的db文件中获取此目录下已缓存的所有资源,主动进行逐条刷新(主动将需要刷新的资源删除或主动将其过期时间置为0,保证下次网民访问时,cdn会重新回源获取更新后的资源),在此目录下所有的资源刷新完成后,将此目录从内存的数据结构中删除,进而保证内存中仅保存少量未处理的刷新目录,通过主动刷新可减少内存消耗。
124.在本技术实施例中,cdn缓存服务器还可以定期对db文件进行瘦身,为了保证db文件中的有效性,在流量低峰期,对db文件中的所有资源,逐条检查其是否仍在cache缓存中,如果资源已经不在cache缓存中(如刷新后无访问或lru淘汰),则将此资源从有序db文件中删除,进而保证db文件中的资源都是有效的记录,防止无效记录的累积导致db文件越来越大。
125.采用本技术实施例的方法可以同时支持主动和被动目录刷新的方案,目录刷新无需网民请求触发;降低了刷新目录在内存中的存在周期,减少了内存消耗,可同时提供更多的目录刷新数量。
126.需要说明的是,图3所示步骤的具体实施方式与图2所示步骤的具体实施方式类似,具体实现时可以参照上文,在此不再赘述。
127.本技术的技术方案支持正则刷新,客户可提供待刷新的正则表达式,实现一次性批量刷新符合某种特征的所有缓存资源,cdn缓存服务器将符合正则表达式的资源删除,后续网民访问时重新回源获取更新后的资源。作为一种可选的实施例,如图4所示,下文结合具体实施方式进一步详述本技术的技术方案:
128.步骤41,客户(使用cdn服务的客户)提交正则刷新请求(即资源刷新通知)给cdn刷新中央,即cdn刷新模块,cdn刷新中央是接收客户的正则刷新请求的入口,接收到后将刷新请求分发到所有的cache设备(即cdn缓存服务器)做刷新缓存动作,客户源站是指内容生成和存储的地方,cdn缓存服务器的缓存内容都是从客户源站获取的。
129.步骤42,cdn刷新中央进行校验处理,在验证通过后将正则刷新请求(可以为包括url的正则表达式)下发给cdn所有设备的cache系统,包括多个cdn缓存服务器,每个cdn缓存服务器可以包括高性能的http和反向代理web服务器nginx和缓存cache。
130.上述校验处理为一次校验,包括校验正则表达式是否合法、客户提交的正则刷新次数是否超过阈值、客户是否有对刷新域名的操作权限等等。
131.步骤43,cache系统对正则表达式的合法性进行二次校验,以防止客户提交错误的正则表达式,若校验失败(如正则表达式非法)直接返回刷新失败;校验成功继续。
132.上述二次校验的目的是校验正则表达式是否合法,可以对其进行compile操作,操作成功则确定正则表达式合法,不成功则确定正则表达式非法。
133.步骤44,cache系统将正则表达式中的域名字段作为key计算hash,然后查找此正则表达式是否已存在,如果存在,则更新其过期时间后返回;如果不存在,则将此正则表达式编译后插入hash表(客户提交的正则表达式使用hash表保存,key为正则表达式中的host字段,相同key的多个正则表达式使用链表存储),返回刷新中央正则刷新执行成功。
134.本技术采用的正则刷新是被动刷新,即资源只有在被访问的时候才会判断是否命中正则刷新,所以会为客户提交的正则刷新规则设置过期时间(如保存1个月),以保证需要刷新的资源会被刷新。
135.步骤45,接收网民请求时,如果资源未在本地命中,则按照原有逻辑处理;如果命中,则按照以下方法检查是否命中正则刷新。
136.步骤451,根据请求url(请求中携带的资源存储url)中的域名计算hash,在hash表中查找是否此域名是否存在正则刷新列表。
137.如果不存在、且不需要比对请求url对应的存储url,则直接返回未命中正则刷新,利用本地缓存正常提供服务,否则继续。正则刷新是通过hash表存储的,然后使用链表解决冲突,即先判断key对应的value是否存在,如果不存在,说明此域名没有提交正则刷新,直接返回继续处理;如果value存在,则需要对value中的所有正则表达式都进行比对。
138.步骤452,将请求url对应的存储url与前一步骤中获取的正则表达式逐个进行正则匹配,如果均未匹配成功,则返回未命中正则刷新,本地缓存可以正常提供服务;如果命中则继续。
139.存储url是cdn内部用来识别资源的,比如域名a和域名b共享缓存,那么意味着
140.http://a/1.html和http://b/1.html是同1个资源,如果设置b共享a的资源,则
141.http://b/1.html对应的存储url为http://a/1.html。
142.步骤453,如果命中了正则刷新,判断此正则刷新规则是否过期(从提交开始设定一个固定时长,如1个月过期),如果已经过期,则删除此正则刷新规则,并继续步骤452中剩余的正则表达式匹配;如果未过期则继续。
143.步骤454,比较资源缓存到本地的时间与正则刷新的提交时间,如果缓存到本地的时间晚于正则刷新的提交时间,则返回未命中正则刷新,本地缓存可继续提供服务;否则继续。正则刷新对此刷新请求提交到cache前,cache缓存的资源生效,这样保证资源只被刷新一次,后续可以正常命中。比如资源a先缓存,客户提交正则刷新,资源a再次被访问时会删除已有缓存,然后重新回源获取,再后续访问资源a时,直接从本地缓存命中,无需删除后重新获取。
144.正则表达式过期时间要大于磁盘轮换周期(即1个资源不被访问,多久后会被自然淘汰的时间周期),比如正则表达式过期时间为1个月,磁盘轮换周期2周,这样就能保证,资源连续2周未被访问就会被淘汰(从磁盘删除),这样即使1个月后正则表达式过期,此时资源也不会被命中,而是重新回源获取。
145.步骤455,命中正则刷新规则,且资源在正则刷新提交之前缓存,cdn需要删除此资源,重新从源站获取。
146.在本技术的技术方案中,支持正则表达式刷新,刷新前缓存且匹配正则表达式的
资源直接删除,重新回源获取,客户可根据正则表达式控制刷新范围,实现更为精准的批量资源刷新;按照域名进行hash,分别存储不同域名的正则刷新,降低域名请求时的无效正则表达式匹配,减少处理时间。
147.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
148.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
149.根据本技术实施例的另一个方面,还提供了一种用于实施上述缓存资源的刷新方法的缓存资源的刷新装置。图5是根据本技术实施例的一种可选的缓存资源的刷新装置的示意图,如图5所示,该装置可以包括:
150.第一接收单元51,用于接收资源刷新通知,其中,所述资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;
151.第一处理单元53,用于响应于所述资源刷新通知,对缓存设备的缓存资源中与所述资源刷新通知匹配的第一资源进行操作,以使所述缓存设备不能利用所述第一资源对用户终端的资源请求进行响应,其中,所述第一资源与所述资源请求所请求的资源匹配;
152.第一刷新单元55,用于在接收到用户终端的所述资源请求、且不能利用所述第一资源进行响应的情况下,从源站获取与所述资源请求匹配的第二资源;
153.第一发送单元57,用于将所述第二资源发送给用户终端。
154.需要说明的是,该实施例中的第一接收单元51可以用于执行本技术实施例中的步骤s202,该实施例中的第一处理单元53可以用于执行本技术实施例中的步骤s204,该实施例中的第一刷新单元55可以用于执行本技术实施例中的步骤s206,该实施例中的第一发送单元57可以用于执行本技术实施例中的步骤s208。
155.通过上述模块,1)采用正则表达式的方式对缓存资源进行刷新,可以实现资源的批量刷新,可以解决相关技术中缓存的刷新效率较低的技术问题,进而达到提高刷新效率的技术效果;2)相对于url刷新和目录刷新,采用正则表达式既可以实现批量刷新,还能准确的对指定类型的资源进行刷新,避免了对多余资源的刷新;3)仅仅在接收到用户终端的资源请求、且不能利用第一资源进行响应(即在第一资源被操作后首次被用户终端所请求)的情况下,才会从源站拉取资源,避免了大量缓存设备同时向源站请求资源造成的源站负载过大,另外,第二次及之后用户终端对相同资源的请求,由于本地已经对第一资源进行了刷新,刷新后的资源是第二资源,第二资源是可以直接用于进行响应的,故可以直接利用之前缓存的第二资源直接进行响应,避免重复从源站拉取资源;4)从源站获取与资源请求匹配的第二资源时,不用进行回源验证,而是直接获取第二资源,可以减少与源站的交互,降
低源站的负载和对网络带宽的占用。
156.可选地,第一处理单元在对缓存设备的缓存资源中与所述资源刷新通知匹配的第一资源进行操作时,还用于:删除所述缓存资源中与所述资源刷新通知匹配的所述第一资源。
157.可选地,第一处理单元在对缓存设备的缓存资源中与所述资源刷新通知匹配的第一资源进行操作时,还用于:将所述缓存资源中与所述资源刷新通知匹配的所述第一资源打上预设标记,其中,所述预设标记用于表示被标记的资源不能用于对用户终端的请求进行响应。
158.可选地,第一处理单元在对缓存设备的缓存资源中与所述资源刷新通知匹配的第一资源进行操作时,还用于:将所述缓存资源中与所述资源刷新通知匹配的所述第一资源转移至预设存储位置保存,其中,位于所述预设存储位置的资源不能用于对用户终端的请求进行响应。
159.可选地,第一发送单元还用于:在将所述第二资源发送给用户终端之后,接收用户终端的第一请求;在所述缓存设备上缓存的所述第二资源与所述第一请求所请求的资源匹配的情况下,直接将缓存的所述第二资源发送给用户终端。
160.可选地,第一刷新单元还用于按照如下方式确定用户终端发送的请求为所述资源请求:从用户终端发送的请求中解析出资源地址;将解析出的资源地址与预存的正则表达式进行匹配,其中,所述预存的正则表达式包括所述资源刷新通知中与所述第一资源匹配的第一正则表达式;在解析出的资源地址与所述第一正则表达式匹配的情况下,确定用户终端发送的请求是所述资源请求。
161.可选地,第一刷新单元在将解析出的资源地址与预存的正则表达式进行匹配时,还用于:获取所述资源地址中域名的第一域名哈希值;在哈希表中不存在以所述第一域名哈希值为索引的第一元素的情况下,确定所述资源地址与所述第一正则表达式不匹配,其中,所述哈希表中的每个元素以域名的哈希值为索引、以包括有该域名的正则表达式为键值;在所述哈希表中存在以所述第一域名哈希值为索引的所述第一元素的情况下,获取所述第一元素的键值;在所述资源地址不位于所述第一元素的键值中任一正则表达式所表示的地址范围内的情况下,确定所述资源地址与所述第一正则表达式不匹配;在所述资源地址位于所述第一元素的键值中所述第一正则表达式所表示的地址范围内的情况下,确定所述资源地址与所述第一正则表达式匹配。
162.可选地,第一处理单元在接收资源刷新通知之后,还用于按照如下方式对所述资源刷新通知采用的每个正则表达式进行处理:获取所述资源刷新通知采用的第二正则表达式中域名的第二域名哈希值,其中,所述第二正则表达式是所述资源刷新通知中未处理过的正则表达式;在哈希表中不存在以所述第二域名哈希值为索引的元素的情况下,在所述哈希表中创建以所述第二域名哈希值为索引、以所述第二正则表达式为键值的第二元素;在所述哈希表中已存在以所述第二域名哈希值为索引的第三元素的情况下,获取所述第三元素的键值;在所述第三元素的键值中不存在所述第二正则表达式的情况下,将所述第二正则表达式插入至所述第三元素的键值中;在所述第三元素的键值中存在所述第二正则表达式的情况下,将所述第三元素的键值中所述第二正则表达式的过期时间从第一时刻更新为第二时刻,其中,所述第二时刻晚于所述第一时刻。
163.可选地,第一处理单元还用于在获取所述资源刷新通知采用的第二正则表达式中域名的第二域名哈希值之前,从所述资源刷新通知获取未处理过的所述第二正则表达式;对所述第二正则表达式进行校验,其中,在校验通过的情况下,获取所述资源刷新通知采用的第二正则表达式中域名的第二域名哈希值的。
164.可选地,第一刷新单元在接收到用户终端的所述资源请求、且不能利用所述第一资源进行响应的情况下,从源站获取与所述资源请求匹配的第二资源时,还用于:在接收到用户终端的所述资源请求、且不能利用所述第一资源进行响应的情况下,获取第一正则表达式的过期时间;在当前时间未达到所述第一正则表达式的过期时间的情况下,按照所述资源请求指示的资源地址从所述源站获取所述第二资源。
165.可选地,第一刷新单元还用于在获取第一正则表达式的过期时间之后,在所述当前时间达到所述过期时间的情况下,将所述第一正则表达式从第一元素的键值中删除。
166.可选地,第一发送单元还用于在从源站获取与所述资源请求匹配的第二资源并缓存所述第二资源之后,接收用户终端的第二请求;从用户终端的第二请求中解析出资源地址;在所述第二请求中解析出的资源地址与第一正则表达式匹配的情况下,获取所述第一正则表达式的过期时间;在当前时间未达到所述过期时间的情况下,获取所述缓存设备上与所述第二请求中解析出的资源地址匹配的所述第二资源;在所述第二资源的缓存时间晚于所述第一正则表达式的接收时间的情况下,将所述第二资源发送给用户终端。
167.可选地,第一处理单元还用于在对缓存设备的缓存资源中与所述资源刷新通知匹配的第一资源进行操作之后,在当前时间达到所述第一资源的过期时间的情况下,从所述缓存设备的缓存资源中删除所述第一资源,其中,所述第一资源的过期时间早于与所述第一资源匹配的第一正则表达式的过期时间。
168.根据本技术实施例的另一个方面,还提供了一种用于实施上述缓存资源的刷新方法的缓存资源的刷新装置。图6是根据本技术实施例的一种可选的缓存资源的刷新装置的示意图,如图6所示,该装置可以包括:
169.第二接收单元61,用于接收资源刷新通知,其中,所述资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;
170.第二处理单元63,用于响应于所述资源刷新通知,删除缓存设备的缓存资源中与所述资源刷新通知匹配的第一资源;
171.第二刷新单元65,用于在接收到用户终端的资源请求、且不能利用与所述资源请求匹配的所述第一资源进行响应的情况下,从源站获取与所述资源请求匹配的第二资源;
172.第二发送单元67,用于将所述第二资源发送给用户终端。
173.此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
174.根据本技术实施例的另一个方面,还提供了一种用于实施上述缓存资源的刷新方法的服务器或终端。
175.图7是根据本技术实施例的一种终端的结构框图,如图7所示,该终端可以包括:一个或多个(图7中仅示出一个)处理器701、存储器703、以及传输装置705,如图7所示,该终端
还可以包括输入输出设备707。
176.其中,存储器703可用于存储软件程序以及模块,如本技术实施例中的缓存资源的刷新方法和装置对应的程序指令/模块,处理器701通过运行存储在存储器703内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的缓存资源的刷新方法。存储器703可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器703可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
177.上述的传输装置705用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置705包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置705为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
178.其中,具体地,存储器703用于存储应用程序。
179.处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤:
180.接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;响应于资源刷新通知,对缓存设备的缓存资源中与资源刷新通知匹配的第一资源进行操作,以使缓存设备不能利用第一资源对用户终端的资源请求进行响应,第一资源与资源请求所请求的资源匹配;在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;将第二资源发送给用户终端。
181.处理器701还用于执行下述步骤:
182.接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;响应于资源刷新通知,删除缓存设备的缓存资源中与资源刷新通知匹配的第一资源;在接收到用户终端的资源请求、且不能利用与资源请求匹配的第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;将第二资源发送给用户终端。
183.采用本技术实施例,1)采用正则表达式的方式对缓存资源进行刷新,可以实现资源的批量刷新,可以解决相关技术中缓存的刷新效率较低的技术问题,进而达到提高刷新效率的技术效果;2)相对于url刷新和目录刷新,采用正则表达式既可以实现批量刷新,还能准确的对指定类型的资源进行刷新,避免了对多余资源的刷新;3)仅仅在接收到用户终端的资源请求、且不能利用第一资源进行响应(即在第一资源被操作后首次被用户终端所请求)的情况下,才会从源站拉取资源,避免了大量缓存设备同时向源站请求资源造成的源站负载过大,另外,第二次及之后用户终端对相同资源的请求,由于本地已经对第一资源进行了刷新,刷新后的资源是第二资源,第二资源是可以直接用于进行响应的,故可以直接利用之前缓存的第二资源直接进行响应,避免重复从源站拉取资源;4)从源站获取与资源请求匹配的第二资源时,不用进行回源验证,而是直接获取第二资源,可以减少与源站的交互,降低源站的负载和对网络带宽的占用。
184.可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
185.本领域普通技术人员可以理解,图7所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图7其并不对上述电子装置的结构造成限定。例如,终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
186.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
187.本技术的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行缓存资源的刷新方法的程序代码。
188.可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
189.可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
190.接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;响应于资源刷新通知,对缓存设备的缓存资源中与资源刷新通知匹配的第一资源进行操作,以使缓存设备不能利用第一资源对用户终端的资源请求进行响应,第一资源与资源请求所请求的资源匹配;在接收到用户终端的资源请求、且不能利用第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;将第二资源发送给用户终端。
191.可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
192.接收资源刷新通知,资源刷新通知采用正则表达式的方式指示对缓存资源进行刷新;响应于资源刷新通知,删除缓存设备的缓存资源中与资源刷新通知匹配的第一资源;在接收到用户终端的资源请求、且不能利用与资源请求匹配的第一资源进行响应的情况下,从源站获取与资源请求匹配的第二资源;将第二资源发送给用户终端。
193.可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
194.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
195.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
196.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
197.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
198.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方
式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
199.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
200.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
201.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1