掌桥专利:专业的专利平台
掌桥专利
首页

刷新缓存数据的方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 12:14:58


刷新缓存数据的方法、装置、电子设备和存储介质

技术领域

本公开涉及计算机技术领域,具体涉及云存储技术领域和云服务技术领域,更具体地涉及一种刷新缓存数据的方法、装置、电子设备和存储介质。

背景技术

随着互联网技术的发展,人们越来越依赖于通过网络获取信息。为了提高用户访问网站的速度,节约信息源的带宽和设备成本,内容分发网络(Content DeliveryNetwork,CDN)随之产生。内容分发网络为一种用于缓存、分发互联网资源文件的网络系统。该内容分发网络为一种Web加速的主要手段,通过将互联网资源文件缓存到离用户较近的边缘节点服务器上,来提高用户访问网站的速度。

为了提高用户查询到的信息的准确性和时效性,需要对CDN上缓存的过期或者无效资源进行更新或删除。

发明内容

提供了一种提高刷新时效性和通用性的刷新缓存数据的方法、装置、电子设备和存储介质。

根据本公开的一个方面,提供了一种由缓存节点执行的刷新缓存数据的方法,包括:响应于接收到请求信息,确定请求信息的类型,该请求信息的类型包括刷新请求和数据请求;在请求信息的类型为刷新请求的情况下,生成针对刷新请求的第一刷新任务,并基于该第一刷新任务对与刷新请求相关联的第一缓存数据进行刷新;在请求信息的类型为数据请求的情况下,响应于存在针对数据请求的第二缓存数据且存在与数据请求相关联的第二刷新任务,基于第二刷新任务对第二缓存数据进行刷新。

根据本公开的另一个方面,提供了一种配置于缓存节点的刷新缓存数据的装置,包括:请求类型确定模块,用于响应于接收到请求信息,确定请求信息的类型,该请求信息的类型包括刷新请求和数据请求;刷新任务生成模块,用于在请求信息的类型为刷新请求的情况下,生成针对刷新请求的第一刷新任务;第一数据刷新模块,用于基于第一刷新任务对与刷新请求相关联的第一缓存数据进行刷新;以及第二数据刷新模块,用于在请求信息的类型为数据请求的情况下,响应于存在针对数据请求的第二缓存数据且存在与数据请求相关联的第二刷新任务,基于第二刷新任务对第二缓存数据进行刷新。

根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的由缓存节点执行的刷新缓存数据的方法。

根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的由缓存节点执行的刷新缓存数据的方法。

根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开提供的由缓存节点执行的刷新缓存数据的方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开实施例的刷新缓存数据的方法、装置、电子设备和存储介质的应用场景示意图;

图2是根据本公开实施例的由缓存节点执行的刷新缓存数据的方法的流程图;

图3是根据本公开实施例在请求信息为刷新请求的情况下刷新缓存数据的原理示意图;

图4是根据本公开实施例在请求信息为刷新请求的情况下刷新缓存数据的流程示意图;

图5是根据本公开实施例在请求信息为数据请求的情况下刷新缓存数据的原理示意图;

图6是根据本公开实施例在请求信息为数据请求的情况下刷新缓存数据的流程图;

图7是根据本公开实施例的配置于缓存节点的刷新缓存数据的装置的结构框图;以及

图8是用来实施本公开实施例的刷新缓存数据的方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本公开提供了一种由缓存节点执行的刷新缓存数据的方法,包括类型确定阶段、任务生成阶段和刷新阶段。响应于接收到请求信息,进入类型确定阶段,以确定请求信息的类型,该请求信息的类型包括刷新请求和数据请求。在请求信息的类型为刷新请求的情况下,进入任务生成阶段,以生成针对刷新请求的第一刷新任务。随之进入刷新阶段,以基于第一刷新任务对与刷新请求相关联的的第一缓存数据进行刷新。在请求信息的类型为数据请求的情况下,则直接进入刷新阶段,在此种情况下,刷新阶段可以先确定是否存在针对数据请求的第二缓存数据以及是否存在与数据请求相关联的第二刷新任务。若存在针对数据请求的第二缓存数据且存在与数据请求相关联的第二刷新任务,则基于该第二刷新任务对第二缓存数据进行刷新。

以下将结合图1对本公开提供的方法和装置的应用场景进行描述。

图1是根据本公开实施例的刷新缓存数据的方法、装置、电子设备和存储介质的应用场景示意图。

如图1所示,该应用场景100中包括源站110、CDN缓存系统120和用户130。源站110与CDN缓存系统120之间通过网络通信连接,该网络可以包括有线通信链路或无线通信链路。

其中,源站110存储有海量的资源,该海量的资源可以包括文档、图片和/或视频等任意格式的多媒体资源。CDN缓存系统120可以通过与源站之间的通信连接,从源站110中获取多媒体资源,并将该多媒体资源缓存至CDN缓存系统120中的边缘节点服务器上。

其中,CND缓存系统120可以设置有多个边缘节点服务器1231~1234,以分别缓存源站110中基于统一资源定位符(Uniform/Universal Resource Locator,URL)设定的不同目录中的多媒体资源。在边缘节点服务器的个数较多时,该CND缓存系统120中还可以布置有多个中间源服务器1221~1222,该中间源服务器用于缓存与其通信连接的至少一个边缘节点服务器缓存的多媒体资源。在一实施例中,如图1所示,该CDN缓存系统120还可以设置有控制中心121,用于对CDN缓存系统中各服务器缓存的多媒体资源进行配置和管理,并监控各服务器的运行状态等。在一实施例中,该控制中心121还可以响应于管理人员的操作生成刷新请求,并将该刷新请求发送给对应的边缘节点服务器,以生成刷新任务。

示例性地,CND缓存系统120中的每个边缘节点服务器可以同时服务成千上万条数据请求。在用户130需要查询信息时,查询信息的数据请求可以被CDN缓存系统120中的各边缘节点服务器接收,各边缘节点服务器可以响应于接收到数据请求信息,确定本地是否存储有与该数据请求关联的缓存数据。若存在,则向用户反馈该关联的缓存数据。若不存在,则可以将该数据请求丢弃掉,或从源站110中获取关联的数据,并将该关联的数据反馈给用户,同时将该关联的数据缓存至本地。

示例性地,CDN缓存系统中的各服务器例如可以是提供各种服务的服务器。例如,该服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

根据本公开的实施例,为了提高CDN缓存系统中的各服务器缓存的信息的准确性和时效性,可以对各服务器的缓存进行刷新,以删除缓存的过期或者无效资源,并从源站获取最新的资源。对缓存的刷新可以包括对单个文件的刷新、对某个目录下所有文件的刷新等。

示例性地,可以采用全量匹配CDN资源的刷新方法和请求时匹配规则的刷新方法来实现对CDN缓存系统中各服务器缓存数据的刷新。其中,全量匹配CDN资源的刷新方法为:遍历各服务器上所有缓存资源的URL,如果缓存资源的URL与刷新规则匹配,则从该服务器上删除该缓存资源。请求时匹配规则的刷新方法为:使用哈希表和哈希字典树保存刷新规则,当数据请求的URL命中刷新规则时则删除与该数据请求的URL关联的缓存数据。在采用请求时匹配规则的刷新方法时,为了实现对匹配刷新规则的所有缓存数据的刷新,可以结合append写引擎等存储引擎来实现对与数据请求的URL不关联、但与刷新规则匹配的缓存数据的刷新。

需要说明的是,本公开所提供的刷新缓存数据的方法可以由CND缓存系统中的边缘节点服务器执行。相应地,本公开所提供的刷新缓存数据的装置可以配置于CND缓存系统中的边缘节点服务器中。

应该理解,图1中的CDN缓存系统的架构和源站的数目和类型仅仅是示意性的。根据实现需要,可以具有任意架构的CND缓存系统和任意数目和类型的源站。

以下将结合图1描述的应用场景,通过图2~图6对本公开提供的由缓存节点执行的刷新缓存数据的方法进行详细描述。

图2是根据本公开实施例的由缓存节点执行的刷新缓存数据的方法的流程图。

如图2所示,该实施例的由缓存节点执行的刷新缓存数据的方法200可以包括操作S210~操作S250。

在操作S210,响应于接收到请求信息,确定请求信息的类型。

该请求信息可以包括用户经由终端设备发送的数据请求,以从缓存节点中获取满足查询需求的信息。或者,该请求信息可以包括由管理人员经由管理设备发送的刷新请求,以指示缓存节点对缓存的数据进行刷新。相应地,确定的请求信息的类型可以为数据请求或刷新请求。

示例性地,可以根据请求信息中携带的标识来确定请求信息的类型。其中,该标识例如可以为请求信息的源IP地址,CDN缓存系统可以预先维护有具有刷新管理权限的管理设备的IP地址列表。若请求信息的源IP地址属于IP地址列表,则确定请求信息为刷新请求。若请求信息的源IP地址不属于IP地址列表,则确定请求信息为数据请求。可以理解的是,上述标识仅作为示例以利于理解本公开,本公开对此不做限定。

若请求信息的类型为刷新请求,则执行操作S220~操作S230。若请求信息的类型为数据请求,则执行操作S240~操作S250。

在操作S220,生成针对刷新请求的第一刷新任务。

在操作S230,基于第一刷新任务对与刷新请求相关联的第一缓存数据进行刷新。

根据本公开的实施例,可以基于刷新请求中的地址信息,来生成第一刷新任务,该第一刷新任务可以规定有刷新规则等信息。其中,刷新规则可以为访问地址包括该刷新请求中的地址信息的所有文件均需刷新。其中,地址信息例如可以由协议信息、域名信息和目录信息组成。或者该地址信息还可以包括端口信息。该第一刷新任务的名称可以包括该地址信息。

在生成第一刷新任务后,可以基于地址信息查询缓存目录,确定与第一刷新任务的名称中的地址信息相匹配的缓存目录,并确定以该缓存目录下任一URL地址作为访问地址的缓存数据为第一缓存数据。在对第一缓存数据进行刷新时,可以先删除缓存节点中的第一缓存数据,再基于URL地址从源站请求新的数据,并将该新的数据缓存至缓存节点,完成对该第一缓存数据的刷新。其中,每个缓存目录可以包括目录下缓存数据的URL地址和该缓存数据在缓存节点中的缓存地址之间的映射关系。

在一实施例中,缓存节点可以维护有刷新任务列表,在生成第一刷新任务后,可以将该第一刷新任务添加至该刷新任务列表。若完成对第一缓存数据的刷新,则从刷新任务列表中删除该第一刷新任务。

在一实施例中,为了避免对终端设备访问缓存节点流程的干扰,可以开启一个新的线程,采用该新的线程来生成第一刷新任务并刷新第一缓存数据。

在操作S240,判断是否存在针对数据请求的第二缓存数据且是否存在与数据请求相关联的第二刷新任务。

根据本公开的实施例,数据请求中包括URL地址,操作S240可以判断缓存节点缓存的数据中是否存在访问地址为该URL地址的数据。若存在,则确定存在第二缓存数据,否则确定不存在第二缓存数据。其中,URL地址包括协议信息、域名信息、目录信息和参数信息。在一实施例中,URL地址还可以包括以下至少之一:端口信息、文件名和锚。

根据本公开的实施例,该缓存节点还可以设置有哈希表,该哈希表中包括缓存数据的访问地址的标识符,该标识符例如可以是使用信息摘要算法(Message-DigestAlgorithm)转换缓存数据的URL地址得到的散列值。在判断是否存在第二缓存数据时,可以先使用信息摘要算法将数据请求中的URL地址转换为散列值。在哈希表中存在与数据请求中的URL地址转换得到的散列值相同的散列值时,确定存在第二缓存数据。

根据本公开的实施例,可以基于该数据请求中的URL地址查询刷新任务列表,确定该刷新任务列表中是否存在与URL地址中的协议信息、域名信息和目录信息均相同的刷新任务,若存在,则确定该刷新任务为第二刷新任务。

可以理解的是,上述判断是否存在第二缓存数据的方法和判断是否存在第二刷新任务的方法仅作为示例以利于理解本公开,本公开对此不做限定。在存在第二缓存数据且存在第二刷新任务的情况下,执行操作S250。否则确定完成对缓存数据进行刷新的流程。

在操作S250,基于第二刷新任务对第二缓存数据进行刷新。

在确定第二刷新任务后,可以基于该第二刷新任务定位第二缓存数据所在的缓存目录,并确定该缓存目录下与数据请求中的URL地址具有映射关系的缓存地址。缓存节点中该缓存地址处存储的数据即为第二缓存数据,基于该缓存地址可以删除第二缓存数据,并基于URL地址从源站中请求新的数据。通过将请求的新的数据缓存至该缓存地址处,可以完成对第二缓存数据的刷新。需要说明的是,此处的源站是指缓存节点的上一层级的服务器。例如,若缓存节点为边缘节点服务器,且CDN缓存系统设置有中间源服务器,则从中间源服务器中请求新的数据。

可以理解的是,该操作S250与前述的操作S230类似,在此不再赘述。

本公开实施例通过判断请求信息的类型,并在请求信息的类型为刷新请求时,生成第一刷新任务来对第一缓存数据进行刷新。在请求信息的类型为数据请求时,基于第二刷新任务对第二缓存数据进行刷新,可以实现前述的全量匹配CDN资源的刷新方法和请求时匹配规则的刷新方法的融合,从而可以解决匹配规则的刷新方法所存在的需要结合存储引擎才能实现全量刷新、刷新方法不通用的技术问题。并因此可以解决全量匹配CDN资源的刷新方法所存在的需要遍历所有的资源URL,会产出大量的磁盘IO的技术问题。这是由于该实施例仅需根据第一刷新任务定位到缓存目录,并对缓存目录下的数据进行刷新即可。因此,该实施例的刷新缓存数据的方法可以在一定程度上提高刷新效率、刷新时效性和刷新方法的通用性。

图3是根据本公开实施例在请求信息为刷新请求的情况下刷新缓存数据的原理示意图。

根据本公开的实施例,缓存节点可以设置有预定数据库,该缓存节点例如可以将缓存目录备份至该预定数据库。该缓存目录可以为多个,多个缓存目录是基于访问缓存节点中所有缓存数据的URL地址构建的,且具有相同地址信息的URL地址属于同一个缓存目录。该地址信息与前文描述的刷新请求中的地址信息类似,在此不再赘述。通过将缓存目录备份至预定数据库,则可以在对数据进行刷新时,查询数据库中的缓存目录,从而减少数据刷新对响应数据请求的主线程的干扰。

基于此,如图3所示,若请求信息为刷新请求,该实施例300可以先采用前文描述的方法生成第一刷新任务301。随后基于该第一刷新任务301查询预定数据库备份的缓存目录。具体可以是采用第一刷新任务301的名称中的地址信息302来查询缓存目录310,确定与第一刷新任务301相关联的缓存数据,作为第一缓存数据303。该第一缓存数据303即为以与该地址信息302相匹配的缓存目录下的URL地址作为访问地址的缓存数据,并确定该第一缓存数据303的缓存时刻t

基于该图3的原理,以下将结合图4,对在请求信息为刷新请求的情况下刷新缓存数据的流程进行详细描述。

图4是根据本公开实施例在请求信息为刷新请求的情况下刷新缓存数据的流程示意图。

如图4所示,若请求信息为刷新请求,则刷新缓存数据的流程可以包括操作S410~操作S470。在该实施例中,缓存节点可以维护有指示至少一个刷新任务的前缀树,该前缀树包括至少一个分支,每个分支指示一个刷新任务。具体地,每个分支包括依次连接的多个节点,该多个节点指示的信息按连接顺序可以组成指示刷新任务中包括的地址信息的分支。该实施例可以实时地更新备份至缓存节点中的预定数据库中备份的前缀树。

在操作S410,响应于接收到刷新请求,基于刷新请求生成刷新任务,并将刷新任务中的地址信息存入指示刷新任务的前缀树中。

其中,生成刷新任务的方法与前文生成第一刷新任务的方法类似,在此不再赘述。将刷新任务中的地址信息存入指示刷新任务的前缀树中具体可以为:生成指示地址信息中的各部分信息的多个节点,随后将该多个节点依据指示的各信息在地址信息中的排列顺序依次连接,得到指示生成的刷新任务的一个分支,将该分支添加至前缀树中。类似地,前述实施例描述的由缓存节点执行的刷新缓存数据的方法可以在生成第一刷新任务后,在前缀树中添加指示第一刷新任务的分支,并为第一刷新任务添加指示生成时刻的时间戳。

在操作S420,将前缀树更新至缓存节点中的预定数据库。

随后通过操作S430~操作S470来基于生成的刷新任务对针对刷新请求的缓存数据进行刷新。其中,前缀树指示的至少一个刷新任务可以为后台处理任务,以在缓存节点的后台运行,实现对缓存数据的刷新。通过该方式,可以进一步减少缓存数据的刷新对缓存节点响应数据请求的进程的干扰。

在操作S430,遍历预定数据库中与地址信息匹配的缓存目录下的数据,获得第一缓存数据。

该与地址信息匹配的缓存目录的确定方法与前文描述的类似。例如缓存目录以地址信息命名,该实施例可以通过将缓存目录的名称与地址信息进行匹配,确定名称与地址信息相同的缓存目录为匹配的缓存目录。在一实施例中,预定数据库可以为顺序数据库,则多个缓存目录以预定顺序存储在该预定数据库中。可以按预定顺序将缓存目录的名称与地址信息依次匹配,直至得到匹配的缓存目录。通过该方式,可以在一定程度上降低与地址信息进行匹配所需的时长,并因此提高更新缓存数据的效率。

将以遍历获得的任一URL地址作为访问地址的缓存数据作为第一缓存数据。该实施例可以从与遍历得到的该任一URL具有映射关系的缓存地址处获取缓存数据,得到第一缓存数据。该第一缓存数据可以具有指示缓存时刻的标签。

在操作S440,判断第一缓存数据的缓存时刻是否早于刷新任务的生成时刻。若早于,则执行操作S450,否则返回执行操作S430,以遍历得到另一第一缓存数据。

在操作S450,刷新该第一缓存数据。具体可以先基于缓存地址删除第一缓存数据,然后从缓存节点的前一层级的源站中请求新的数据。将该请求得到的新的数据存储至缓存地址处,完成对第一缓存数据的刷新。

在完成第一缓存数据的刷新后,执行操作S460,判断是否完成对缓存目录下数据的遍历。若未完成,则返回执行操作S430,否则执行操作S470。其中,例如可以通过判断缓存目录下该第一缓存数据的访问地址之后是否还有URL地址来判断是否完成遍历,若该第一缓存数据的访问地址之后还有URL地址,则确定遍历未完成。

在操作S470,删除前缀树中的该地址信息。即删除操作S410中添加至前缀树的指示刷新任务的分支,完成对缓存数据的刷新。类似地,前述由缓存节点执行的刷新缓存数据的方法也可以在完成对第一缓存数据的刷新后,删除前缀树中指示第一刷新任务的分支。

若前缀树还指示有其他刷新任务,则可以在后台基于该其他刷新任务继续对缓存数据进行刷新。

该实施例通过根据刷新时刻来确定是否对第一缓存数据进行刷新,可以避免与响应于数据请求对数据进行刷新的流程的冲突,所导致的数据被多次刷新的情况,并因此可以提高刷新缓存数据的效率和有效性。

图5是根据本公开实施例在请求信息为数据请求的情况下刷新缓存数据的原理示意图。

根据本公开的实施例,缓存节点可以维护有前述的前缀树以及缓存目录,该实施例可以通过查询该前缀树确定是否存在与数据请求相关联的第二刷新任务。以此可以提高确定第二刷新任务的效率,提高刷新缓存数据的效率。

示例性地,如图5所示,若接收到数据请求,该实施例500可以先基于该数据请求501中的URL地址502,确定预定数据库中备份的缓存目录510中是否存在名称与该URL地址502相匹配的缓存目录。若存在,则确定该缓存目录下的URL地址是否包括该URL地址502,若包括,则确定存在针对数据请求的第二缓存数据。并基于与该URL地址具有映射关系的缓存地址获取缓存数据,得到第二缓存数据503。类似地,该第二缓存数据可以具有指示缓存时刻的标签。

若存在针对数据请求的第二缓存数据,则查询预定数据库中的前缀树520。具体可以是基于该数据请求501中的URL地址502查询前缀树520。若前缀树520中存在指示与数据请求相关联的刷新任务的分支,则将该分支指示的刷新任务作为第二刷新任务505。具体可以是查询前缀树中是否存在与URL地址502匹配的分支。该实施例可以采用AC自动机算法来查询前缀树,本公开对此不做限定。

在确定了第二刷新任务505后,可以基于该第二刷新任务505的时间戳确定第二刷新任务的生成时刻t

基于该图5的原理,以下将结合图6,对在请求信息为数据请求的情况下刷新缓存数据的流程进行详细描述。

图6是根据本公开实施例在请求信息为数据请求的情况下刷新缓存数据的流程图。

如图6所示,若请求信息为数据请求,则刷新缓存数据的流程可以包括操作S610~操作S680。

在操作S610,响应于数据请求,查询缓存目录。基于查询缓存目录的结果执行操作S620。

在操作S620,判断是否命中缓存节点的缓存数据。即通过查询缓存目录,确定缓存目录中是否包括数据请求中的URL地址。若包括,则执行操作S630,否则执行操作S670。

在操作S630,查询前缀树。基于查询前缀树的结果执行操作S640。

在操作S640,判断是否命中刷新任务。即判断前缀树指示的至少一个刷新任务中是否存在与数据请求相关联的刷新任务。若存在,则执行操作S650,否则执行操作S680。

在操作S650,判断命中的缓存数据的缓存时刻是否早于命中的刷新任务的生成时刻。若早于,则执行操作S660~操作S680,否则直接跳转至操作S680。

在操作S660,删除命中的缓存数据,具体可以是删除与缓存数据的访问地址具有映射关系的缓存地址处存储的数据。

在操作S670,从源站下载数据并缓存。可以是根据命中的缓存数据的访问地址从缓存节点的上一层级的源站中下载数据,并将该数据缓存至操作S660中提及的缓存地址处。

在操作S680,将缓存的数据反馈给用户。即将前述的缓存地址处缓存的数据作为数据请求的反馈信息,反馈给用户的终端设备,完成对缓存数据的刷新。

该实施例通过根据刷新时刻来确定是否对命中的缓存数据(即前文描述的第二缓存数据)进行刷新,可以避免与响应于刷新请求对数据进行刷新的流程的冲突,所导致的数据被多次刷新的情况,并因此可以提高刷新缓存数据的效率和有效性。

基于上述的由缓存节点执行的刷新缓存数据的方法,本公开还提供了一种配置于缓存节点的刷新缓存数据的装置。以下将结合图7对该装置进行详细描述。

图7是根据本公开实施例的配置于缓存节点的刷新缓存数据的装置的结构框图。

如图7所示,该实施例的配置于缓存节点的刷新缓存数据的装置700可以包括请求类型确定模块710、刷新任务生成模块720、第一数据刷新模块730和第二数据刷新模块740。

请求类型确定模块710用于响应于接收到请求信息,确定请求信息的类型,该请求信息的类型包括刷新请求和数据请求。在一实施例中,该请求类型确定模块710可以用于执行前文描述的操作S210,在此不再赘述。

刷新任务生成模块720用于在请求信息的类型为刷新请求的情况下,生成针对刷新请求的第一刷新任务。在一实施例中,该刷新任务生成模块720可以用于执行前文描述的操作S220,在此不再赘述。

第一数据刷新模块730用于基于第一刷新任务对与刷新请求相关联的第一缓存数据进行刷新。在一实施例中,该第一数据刷新模块730可以用于执行前文描述的操作S230,在此不再赘述。

第二数据刷新模块740用于在请求信息的类型为数据请求的情况下,响应于存在针对数据请求的第二缓存数据且存在与数据请求相关联的第二刷新任务,基于第二刷新任务对第二缓存数据进行刷新。在一实施例中,该第二数据刷新模块740可以用于执行前文描述的操作S250,在此不再赘述。

根据本公开的实施例,上述配置于缓存节点的刷新缓存数据的装置700还可以包括数据备份模块,用于将缓存目录和前缀树备份至预定数据库。其中,缓存目录是基于访问缓存节点中所有缓存数据的URL地址构建的,前缀树指示至少一个刷新任务,预定数据库设置于缓存节点中,至少一个刷新任务为后台处理任务。

根据本公开的实施例,上述配置于缓存节点的刷新缓存数据的装置700还可以包括关联任务确定模块和任务添加模块。其中,关联任务确定模块用于确定是否存在于数据请求相关联的第二刷新任务。该关联任务确定模块可以包括前缀树查询子模块和任务确定子模块,前缀树查询子模块用于响应于存在第二缓存数据,基于数据请求查询预定数据库备份的前缀树。任务确定子模块用于确定至少一个刷新任务中存在的与数据请求相关联的刷新任务,作为第二刷新任务。任务添加模块用于在刷新任务生成模块生成针对刷新请求的第一刷新任务之后,在前缀树中添加指示第一刷新任务的分支。

根据本公开的实施例,上述第二数据刷新模块用于在第二刷新任务的生成时刻晚于第二缓存数据的缓存时刻的情况下,对第二缓存数据进行刷新。

根据本公开的实施例,上述第一数据刷新模块可以包括数据确定子模块和数据刷新子模块。数据确定子模块用于基于第一刷新任务查询预定数据库备份的缓存目录,确定与第一刷新任务相关联的缓存数据,作为第一缓存数据。数据刷新子模块用于在第一刷新任务的生成时刻晚于第一缓存数据的缓存时刻的情况下,对第一缓存数据进行刷新。

根据本公开的实施例,第一刷新任务包括地址信息。上述数据确定子模块可以包括目录确定单元和数据确定单元。目录确定单元用于确定预定数据库备份的缓存目录中与地址信息匹配的缓存目录,作为目标缓存目录。第二数据确定单元用于确定目标缓存目录下的URL地址所访问的缓存数据为与第一刷新任务相关联的缓存数据。

根据本公开的实施例,上述预定数据库为顺序数据库。

根据本公开的实施例,上述配置于缓存节点的刷新缓存数据的装置700还可以包括任务删除模块,用于在基于第一刷新任务完成对第一缓存数据的刷新后,删除前缀树中指示第一刷新任务的分支。

需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图8示出了可以用来实施本公开的实施例的刷新缓存数据的方法的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如刷新缓存数据的方法。例如,在一些实施例中,刷新缓存数据的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的刷新缓存数据的方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行刷新缓存数据的方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(〞Virtual Private Server〞,或简称〞VPS〞)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 刷新缓存数据的方法、装置、电子设备和存储介质
  • 分布式应用缓存刷新系统、方法、电子设备及存储介质
技术分类

06120113225947