资源缓存方法、装置、设备及存储介质与流程

文档序号:20838877发布日期:2020-05-22 17:14阅读:178来源:国知局
资源缓存方法、装置、设备及存储介质与流程

本申请涉及存储技术领域,特别涉及一种资源缓存方法、装置、设备及存储介质。



背景技术:

缓存作为一种访问速度远快于硬盘以及内存的存储介质,是一种对计算机的cpu(centralprocessingunit,中央处理器)而言极其宝贵的存储资源。通过将频繁访问的热点资源保存在缓存中,cpu可以从缓存中访问到资源,从而利用缓存的高速存取的性能优势,来加速获取到资源。

时下,资源缓存的方式通常是,哪个资源被访问,就缓存哪个资源。具体而言,当客户端发起对某个资源的访问请求时,服务器响应于访问请求,会首先查询缓存,如果没有从缓存中查找到资源,则服务器会访问硬盘,从硬盘中读取资源,将资源返回给客户端,并且对资源进行缓存。

采用上述方法进行缓存时,当前被访问的资源才能得到缓存,造成缓存中的热点资源不足,导致缓存的命中率低下,因此影响了缓存的效率。



技术实现要素:

本申请实施例提供了一种资源缓存方法、装置、设备及存储介质,能够解决相关技术中缓存效率低下的问题。所述技术方案如下:

一方面,提供了一种资源缓存方法,所述方法包括:

根据接收到的访问请求,确定第一资源,所述第一资源为所述访问请求所请求的资源;

根据所述第一资源和关联访问信息,确定第二资源,所述关联访问信息用于指示不同资源的历史访问日志之间的关联关系,所述第二资源为历史时间中所述第一资源被访问后下一个被访问的资源;

读取所述第一资源和所述第二资源;

对所述第一资源和所述第二资源进行缓存。

另一方面,提供了一种资源缓存装置,所述装置包括:

确定模块,用于根据接收到的访问请求,确定第一资源,所述第一资源为所述访问请求所请求的资源;

所述确定模块,还用于根据所述第一资源和关联访问信息,确定第二资源,所述关联访问信息用于指示不同资源的历史访问日志之间的关联关系,所述第二资源为历史时间中所述第一资源被访问后下一个被访问的资源;

读取模块,用于读取所述第一资源和所述第二资源;

缓存模块,用于对所述第一资源和所述第二资源进行缓存。

可选地,所述确定模块,用于根据第一网络互连协议ip地址,查询所述关联访问信息,得到所述第一ip地址对应的第二资源,所述第一ip地址为所述访问请求的源ip地址,所述第二资源为所述第一资源被所述第一ip地址访问后,下一个被所述第一ip地址访问的资源。

可选地,所述装置还包括:

第一获取模块,用于获取至少一个历史访问日志,每个历史访问日志包括第二ip地址、访问时间点以及资源标识,所述第二ip地址为历史访问请求的源ip地址,所述资源标识用于标识所述第二ip地址访问的资源;

分组模块,用于对所述至少一个历史访问日志中的资源标识按照第二ip地址进行分组,得到至少一个资源分组;

排序模块,用于对每个资源分组中的不同资源标识按照访问时间点的先后顺序进行排序,得到所述关联访问信息。

可选地,所述装置还包括:

第一过滤模块,用于过滤掉关联访问事件的次数低于次数阈值的第二资源,所述关联访问事件是指所述第一资源被访问后下一个被访问的资源是所述第二资源的事件。

可选地,所述装置还包括:

第二过滤模块,用于过滤掉ip地址数量低于数量阈值的第二资源,所述ip地址数量为关联访问事件对应的源ip地址的总数量。

可选地,所述装置还包括:

第三过滤模块,用于过滤掉离散度高于离散度阈值的第二资源,所述离散度用于表示关联访问事件的发生概率的波动变化情况。

可选地,所述装置还包括:

第四过滤模块,用于过滤掉热度信息不满足条件的第二资源,所述热度信息表示关联访问事件的发生概率。

可选地,所述装置还包括:

第二获取模块,用于获取第一次数与第二次数,所述第一次数为第一ip地址对应的关联访问事件的总次数,所述第二次数为第二ip地址对应的关联访问事件的总次数;获取所述第一次数与所述第二次数之间的比值,作为所述热度信息。

可选地,所述确定模块,还用于基于接收到所述访问请求的时间点,确定邻近时间段,所述邻近时间段与所述时间点之间的时间间隔满足条件;

所述读取模块,还用于读取所述邻近时间段对应的关联访问信息。

可选地,所述确定模块,还用于基于接收到所述访问请求的时间点,确定同比时间段;

所述读取模块,还用于读取所述同比时间段对应的关联访问信息。

可选地,所述装置还包括:

采集模块,用于采集目标应用中每个资源的历史访问日志;

分析模块,用于对所述历史访问日志进行分析处理,得到所述关联访问信息。

可选地,所述第一资源包括虚拟场景的素材资源,所述第二资源包括所述虚拟场景中与所述素材资源关联显示的图像、与所述素材资源关联播放的音频或者与所述素材资源关联显示的文字中的至少一项;或者,

所述第一资源包括电子书中的内容资源,所述第二资源包括所述电子书中与所述内容资源关联显示的文字、与所述内容资源关联显示的图像或者与所述内容资源关联播放的音频中的至少一项;或者,

所述第一资源包括音视频包含的多媒体数据,所述第二资源包括所述音视频中与所述多媒体数据关联显示的文字、与所述多媒体数据关联显示的图像、与所述多媒体数据关联播放的音频中的至少一项。

另一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现上述资源缓存方法所执行的操作。

另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现上述资源缓存方法所执行的操作。

本申请实施例提供的技术方案带来的有益效果至少包括:

本实施例提供了支持关联资源同步缓存的方法,通过关联访问信息,来指明历史运行中不同资源的访问事件之间的关联关系,结合当前接收到的访问请求,依据当前被访问的资源,来找到历史运行中与其关联访问的资源,在进行缓存时,不仅缓存当前被访问的资源,还将与其关联的资源也缓存起来。由于很多资源之间具有关联关系,如果在某一个资源被访问,则该资源的关联资源将要被访问的概率会很高,那么通过这种方法,可以及时、精确地识别出关联资源,并提前将关联资源存入缓存中,若接收到对关联资源的访问请求,就可以直接从缓存中读取到关联资源,从而免去了从缓存中未查找到资源时会触发的对内存或者硬盘进一步访问所带来的性能开销,因此让缓存更加高效、精度更高。

附图说明

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

图1是本申请实施例提供的一种资源缓存方法的实施环境的示意图;

图2是本申请实施例提供的一种资源缓存方法的流程图;

图3是本申请实施例提供的一种关联访问情况的示意图;

图4是本申请实施例提供的一种资源缓存方法的流程图;

图5是本申请实施例提供的一种关联访问事件的次数与ip地址数量之间的关系图;

图6是本申请实施例提供的一种关联访问事件的次数与ip地址数量之间的关系图;

图7是本申请实施例提供的一种目标应用的资源缓存方法的流程图;

图8是本申请实施例提供的一种缓存流程中数据流向的示意图;

图9是本申请实施例提供的一种虚拟场景的素材资源缓存方法的流程图;

图10是本申请实施例提供的一种电子书的内容资源缓存方法的流程图;

图11是本申请实施例提供的一种多媒体数据的缓存方法的流程图;

图12是本申请实施例提供的一种资源缓存装置的结构示意图;

图13是本申请实施例提供的一种终端的结构示意图;

图14是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

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

本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。

本申请中术语“多个”的含义是指两个或两个以上,例如,多个数据包是指两个或两个以上的数据包。

本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。

以下,对本申请涉及的一些术语进行解释。

访问时间:是指资源最近一次被访问的时间点。

访问频率:是指资源在一段时间内被访问的次数。

缓存:是指将资源保存在系统预先为软件分配的高速存取空间中,当需要获取数据可以,可以直接从缓存中得到数据,免去经过底层磁盘读写的开销,从而可以更加快速的提供资源。

命中率:是指从缓存中查找到的资源数量与资源的总数量之间的比值。命中率越高,表示缓存效率越高,由于缓存命中时可以免去远程访问存储设备的网络流量以及时间开销,因此命中率越高,则耗费的网络流量越少,资源加载速度也越快。

热点资源:是指单位时间内访问频率高的资源。

以下,示例性介绍本申请的硬件环境。

图1是本申请实施例提供的一种资源缓存方法的实施环境的示意图。该实施环境包括:终端101和资源平台102。终端101通过无线网络或有线网络与资源平台102相连。

终端101可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器或mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机中的至少一种。终端101安装和运行目标应用。该目标应用可以是能够提供资源的任一应用,例如可以是游戏应用、电子书应用、多媒体应用等。示例性的,终端101是用户使用的终端,终端101中运行的目标应用内登录有用户账号。

资源平台102用于为目标应用提供后台服务。资源平台102可以包括服务器1021和存储设备1022。

服务器1021可以是一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。在本申请的一些实施例中,服务器1021可以用于执行下述方法实施例提供的资源缓存方法。

存储设备1022用于对目标应用的资源进行持久化存储,当终端101请求目标应用的资源时,服务器1021可以响应于终端101的请求,从存储设备1022读取资源。例如,存储设备1022可以包括固态硬盘(solidstatedrives,ssd,也称为固态设备、固态盘或闪存盘)、机械硬盘(harddiskdrive,hdd)等。

本领域技术人员可以知晓,终端101、服务器1021和存储设备1022数量可以更多或更少。比如终端101、服务器1021和存储设备1022可以仅为一个,或者终端101、服务器1021和存储设备1022为几十个或几百个,或者更多数量,此时虽然图1未示出,资源缓存系统还包括其他终端、其他服务器或者其他存储设备。本申请实施例对终端、服务器和存储设备的数量和设备类型不加以限定。

图2是本申请实施例提供的一种资源缓存方法的流程图。该实施例的执行主体为电子设备,参见图2,该方法包括:

201、电子设备采集目标应用中每个资源的历史访问日志。

目标应用可以为电子设备关联的任一应用。例如,如果电子设备是服务器,目标应用可以是该服务器提供后台服务的应用。又如,如果电子设备是终端,目标应用可以是终端安装的应用。目标应用能够在运行的过程中,提供资源。例如,目标应用可以是即时通信应用、游戏应用、社交应用、阅读应用、音频播放应用、视频播放应用、购物应用、直播应用、金融应用等等。资源的形态可以根据目标应用的具体功能确定。例如,资源可以为图像、音频、视频、动画、文本、游戏素材等等,当然也可以是其他形态,本实施例对目标应用的类型以及资源的形态均不作具体限定。

历史访问日志用于记录历史访问请求,该历史访问请求是指历史运行中接收到的对资源的访问请求。其中,可以由电子设备本端接收历史访问请求,生成历史访问日志,也可以由其他设备接收历史访问请求,生成历史访问日志,将历史访问日志发送给电子设备。历史访问日志的内容可以包括多种。例如,历史访问日志可以包括资源标识、第二网络互连协议(internetprotocol,ip)地址以及访问时间(time)。第二ip地址为历史访问请求的源ip地址。资源标识用于标识第二ip地址访问的资源。例如,资源标识可以是资源的访问路径(path)、资源的名称、资源的哈希值、资源对应的公钥等。比如说,某终端在运行游戏应用的客户端的过程中,发起对游戏中某一动画的访问请求,则资源标识为动画的路径,第二ip地址为终端的ip地址,访问时间为动画被访问的时间点。

例如,历史访问日志可以如下所示:

以上所示的历史访问日志的格式为“路径+访问时间+源ip地址”,括号{}是不同历史访问日志之间的分隔符,每个{}中的字符串为一条历史访问日志。具体地,每个{}中的第一个字段表示路径,每个{}中第二个字段表示访问时间,每个{}中第三个字段表示源ip地址。例如,以自然语言描述,{3.txt2019-1-112:05:011.0.0.1}这一条历史访问日志的含义是:ip地址1.0.0.1在日期2019-1-1的时间点12:05:01访问了资源3.txt;{2.txt2019-1-113:05:013.0.0.3}这一条历史访问日志的含义是:ip地址3.0.0.3在日期2019-1-1的时间点13:05:01访问了资源2.txt。

历史访问日志的采集过程可以包括多种实现方式。例如,可以根据接收到的历史访问请求,则生成历史访问日志,将历史访问日志存储至数据库,作为后续分析处理的基础。当执行下述步骤202时,可以从数据库中查询历史访问日志。在一些实施例中,可以采集全量的历史访问日志,即,每当接收到一个访问请求,则生成一条历史访问日志来记录该访问请求,当执行下述步骤202时,可以从数据库中查询最近时间的历史访问日志。

202、电子设备对历史访问日志进行分析处理,得到关联访问信息。

关联访问信息用于指示不同资源的历史访问日志之间的关联关系。利用关联访问信息,能够在一个资源被访问时,找到历史访问日志与其关联的另一个资源。关联访问信息的内容可以包括多种。例如,关联访问信息可以包括资源标识、关联访问事件的次数以及ip地址数量。关联访问信息可以是任一数据格式,例如可以是矩阵、列表等。例如,参见下表1,关联访问信息可以如下表1所示。

表1

关联访问事件是指资源a被访问后下一个被访问的资源是资源b的事件。例如,“2->3”对应的关联访问事件是指资源2被访问后下一个被访问的资源是资源3的事件。其中,符号->表示访问时间的先后顺序,->之前的资源标识代表访问时间在先的资源,->之后的资源标识代表访问时间在后的资源。若资源标识关于->的相对顺序不同,其含义可以产生差异。例如,1->3和3->1虽然包含的资源标识相同,都是1和3,而含义存在区别。1->3表示资源1先被访问,下一个被访问的资源是资源3;而3->1表示资源3先被访问,下一个被访问的资源是资源1。

若两个资源在历史时间中被先后访问,可知两个资源之间存在关联访问的关系。例如,参见上表1,资源标识“2->3”的关联访问事件的次数为2,表明资源2和资源3的关联访问事件发生了2次。若两个资源的关联访问事件的次数越多,表示两个资源的关联访问事件频繁发生,因此两个资源之间的关联关系越强,那么如果一个资源被访问,另一个资源也将被访问概率越高,另一个资源越有可能成为热点数据。通过两个资源的关联访问事件的次数的多少,能够指明两个资源的访问事件是强相关的关系,还是弱相关的关系。例如,参见上表1,资源标识“3->1”的关联访问事件的次数为5,资源标识“1->2”的关联访问事件的次数为1,表明资源3和资源1的关联访问事件发生了5次,资源1和资源2的关联访问事件发生了1次,那么由于资源3和资源1的关联访问事件的次数相对更多,能够指明资源3与资源1的关联关系强于资源1与资源2的关联关系。

ip地址数量为关联访问事件对应的源ip地址的总数量。例如,参见上表1,资源标识“2->3”的ip地址数量为2,表明有2个源ip地址曾经对资源2和资源3触发了关联访问事件。若两个资源的关联访问事件的ip地址数量越多,表明对这两个资源触发关联访问事件的用户越多,因此这两个资源被关联访问的情况越可能是一个普遍规律,即,是各个终端上均可能体现的共性特征。比如说,对于目标应用来说,大部分用户普遍的操作习惯是触发目标应用的功能a后,触发目标应用的功能b,而目标应用在实现功能a时,会发起访问请求,向服务器请求资源1;在实现功能b时,会发起访问请求,向服务器访问资源2。那么资源1和资源2的关联访问事件的ip地址数量会多于其他资源的关联访问事件的ip地址数量,因此利用ip地址数量,能够挖掘出资源1和资源2的关联性,在资源1被访问时,自动将资源2和资源1一起缓存起来。

关联访问信息的生成方式可以包括多种。在一些实施例中,生成关联访问信息的过程可以包括以下步骤一至步骤三:

步骤一、电子设备可以获取至少一个历史访问日志。

步骤二、电子设备可以对至少一个历史访问日志中的资源标识按照第二ip地址进行分组,得到至少一个资源分组。

每个资源分组包括同一个第二ip地址对应的资源标识,该第二ip地址对资源分组中资源标识对应的资源触发了历史访问请求。资源分组的数据形式可以是ip地址[资源分组中每个资源的资源标识]。例如,资源分组可以记为1.0.0.1{3.txt,1.txt,3.txt,1.txt,2.txt,2.txt,3.txt,2.txt,1.txt},以自然语言描述,这一数据的含义是:ip地址1.0.0.1历史访问的资源包含:资源标识为3.txt的资源、资源标识为1.txt的资源、资源标识为3.txt的资源、资源标识为1.txt的资源、资源标识为2.txt的资源、资源标识为2.txt的资源、资源标识为3.txt的资源、资源标识为2.txt的资源和资源标识为1.txt的资源。

在一些实施例中,分组的具体过程可以包括:对不同历史访问日志中的第二ip地址进行比较,若两个历史访问日志中的第二ip地址相同,则将两个历史访问日志划分至同一个资源分组中。

步骤三、电子设备可以对每个资源分组中的不同资源标识按照访问时间点的先后顺序进行排序,得到关联访问信息。

通过对资源分组中的资源标识进行排序,对于关联访问信息中同一个资源分组而言,访问时间点在先的资源标识排在前,访问时间点在后的资源标识排在后。举例而言,排序得到的关联访问信息可以如下所示。

1.0.0.1{3.txt,1.txt,3.txt,1.txt,2.txt,2.txt,3.txt,2.txt,1.txt}

2.0.0.2{2.txt,1.txt,3.txt,1.txt,1.txt,3.txt,1.txt}

3.0.0.3{2.txt,3.txt,1.txt,3.txt,3.txt,2.txt,1.txt}

以自然语言描述,以上关联访问信息的含义是:按照访问时间的先后顺序,ip地址1.0.0.1历史访问的资源依次是:资源标识为3.txt的资源、资源标识为1.txt的资源、资源标识为3.txt的资源、资源标识为1.txt的资源、资源标识为2.txt的资源、资源标识为2.txt的资源、资源标识为3.txt的资源、资源标识为2.txt的资源和资源标识为1.txt的资源。ip地址2.0.0.2历史访问的资源依次是:资源标识为2.txt的资源、资源标识为1.txt的资源、资源标识为3.txt的资源、资源标识为1.txt的资源、资源标识为1.txt的资源、资源标识为3.txt的资源、资源标识为1.txt的资源。ip地址3.0.0.3历史访问的资源依次是:资源标识为2.txt的资源、资源标识为3.txt的资源、资源标识为1.txt的资源、资源标识为3.txt的资源、资源标识为3.txt的资源、资源标识为2.txt的资源、资源标识为1.txt的资源。

通过执行步骤一至步骤三,达到的效果至少可以包括:

一方面,考虑到同一目标应用的不同用户的使用习惯具有差异,导致对于目标应用的同一资源而言,不同用户的终端对该资源的访问概率存在差异,而面临资源访问的差异性,亟需提供一种科学的算法来保证电子设备识别出的关联资源与用户的个人使用习惯相适应。而上述方法中,通过将历史访问的资源依据源ip地址来进行分组,每个源ip地址对应的资源分组能够指明该源ip地址对应的终端对该资源的访问概率的规律,从而将访问规律的差异性融入算法中,那么电子设备利用算法,后续在基于当前接收到的访问请求的源ip地址来查询资源分组时,能够保证找到的关联资源与用户个人的使用习惯相匹配,从而提高识别关联资源的精确度。比如说,如果资源是游戏动画,不同玩家偏好进入的场景可以不同,例如玩家a偏好在场景a中战斗,那么玩家a的终端访问场景a对应的图像、音频、动画等资源的概率就会高于其他场景的资源,那么可以利用玩家a的终端的ip地址,识别出场景a对应的资源为关联资源。而玩家b偏好在场景b中战斗,那么玩家b的终端访问场景b对应的图像、音频、动画等资源的概率就会高于其他场景的资源,识别出场景b对应的资源为关联资源。

另一方面,考虑到同一目标应用的不同资源之间在访问事件上存在时序特征,通过考虑不同资源访问的先后顺序,按照访问时间的先后来进行排序,在后续利用关联访问信息确定被访问资源的关联资源时,能够由于时序特征的引入,保证确定出的关联资源更加精确,即,引入时序特征确定的关联资源被访问的概率会更高,从而提高缓存命中率。比如说,如果资源是游戏动画,对于死亡提示动画和死亡回放动画这两个资源来说,由于游戏应用的运行时序是:首先,发生玩家死亡事件;然后;显示死亡提示动画;之后,显示死亡回放动画,从而帮助玩家对本场游戏中出现失误引起死亡的原因进行复盘。因此,对于运行游戏应用的终端来说,会先访问死亡提示动画,后访问死亡回放动画,而不会先访问死亡回放动画,再访问死亡提示动画。那么,通过上述技术方案,为这两个动画引入时序特征,从而能够保证死亡提示动画被访问后,能够利用关联访问信息找到死亡回放动画,从而主动将死亡回放动画缓存起来。而死亡回放动画被访问后,利用关联访问信息会找到该死亡回放动画之后频繁访问的动画,而避免找到虽然强相关,但时序并不符合规律的死亡提示动画。

通过执行步骤201至步骤202,达到的效果至少可以包括:通过对历史访问分析和计算,能够自动挖掘出用户访问资源的实际规律,将这种访问规律通过关联访问信息来表达。那么后续根据再次接收的访问请求,即可利用预先挖掘出的关联访问信息,作为一种更为准确和合理的缓存条件,通过将满足关联访问信息的资源,作为推理预测出的与被访问的资源关联的热点资源,从而可以进行关联资源的同步缓存。

应理解,上述描述的仅是生成关联访问信息的一种示例性方式,在一些实施例中,也可以采用其他实现方式来生成关联访问信息,例如通过神经网络等人工智能技术,对被关联访问的资源和未被关联访问的资源分别进行标注,使用标注后的资源进行模型训练,从而通过机器学习的方式,自动学习出关联访问的规律,生成关联访问信息。而这些其他实现方式作为关联访问信息的生成方式的一种,也应涵盖在本申请实施例的保护范围之内。

利用历史访问日志来统计得到关联访问信息的方式可以包括多种。以下通过方式一和方式二举例说明。

方式一、周期性循环统计

具体而言,电子设备可以每隔预设时长,对当前时间段的历史访问日志进行统计,得到该时间段对应的关联访问信息。电子设备可以根据每个时间段对应的关联访问信息,建立时间段与关联访问信息之间的映射关系,对时间段与关联访问信息之间的映射关系进行存储。其中,时间段的划分方式可以是固定方式,也可以是自定义配置的方式。举例来说,可以从一天划分出:0:00—0:10,0:10—0:20,0:20—0:30这几个时间段。通过对时间段进行划分,能够控制关联访问信息计算时间范围。

在一些实施例中,电子设备每隔一个时间段,对该时间段的历史访问日志进行统计,得到该时间段对应的关联访问信息,缓存该时间段对应的关联访问信息,以便下一个时间段进行使用。

通过方式一,达到的效果至少可以包括:可以周期性地对历史访问信息进行统计,来识别出当前时间段的历史访问日志对应的关联访问信息,那么后续在接收到对资源的访问请求时,能够结合当前时间点,利用近期的关联访问信息来识别关联资源,从而保证识别出的关联资源与近期的历史访问规律符合,如此,可以随着时间的推移,周期性对关联访问信息进行动态更新,使得利用关联访问信息识别出的关联资源也随之动态更新,那么利用关联访问信息,能够动态跟随时下的关联资源,从而保证关联资源识别的时效性。

方式二、同比统计。

同比是指将当前时间周期的数据与上一个时间周期的数据进行对比的统计学方式。在本实施例中,电子设备可以每隔一个时间段,对该时间段和上一个时间周期的对应时间段的历史访问日志进行统计,得到该时间段对应的关联访问信息。电子设备可以根据每个时间段对应的关联访问信息,建立时间段与关联访问信息之间的映射关系,对时间段与关联访问信息之间的映射关系进行存储。例如,目标应用可以是直播应用,资源可以是直播应用中的音视频数据,直播应用晚上7:00-9:00是访问高峰,因此晚上7:00-9:00的访问规律和其他时间段的访问规律具有较大的差异,因此可以对每天晚上7:00-9:00的历史访问日志与前一天晚上7:00-9:00的历史访问日志的历史访问日志进行统计,来得到关联访问信息。

应理解,上述方式一和方式二仅是示例性说明,而不代表是统计关联访问信息的必选方式。在另一些实施例中,也可以在其他时机下统计关联访问信息,例如在操作的触发下统计关联访问信息,又如实时统计关联访问信息,这些其他的方式作为统计得到关联访问信息的一种,也应涵盖在本申请实施例的保护范围之内。

在一些实施例中,关联访问信息还可以包括热度信息,热度信息表示关联访问事件的发生概率。例如,参见下表2,表2的第3列和第5列示出了热度信息,资源标识“1->3”的热度信息为25%,表示资源2和资源3的关联访问事件的发生概率为25%,即,资源2被访问后,下一个被访问的资源是资源3的概率是25%。

表2

热度信息的算法可以包括多种。在一些实施例中,电子设备可以获取第一次数与第二次数,获取第一次数与第二次数之间的比值,作为热度信息。其中,第一次数为第一ip地址对应的关联访问事件的总次数。第一ip地址可以是历史访问日志记录的所有第二ip地址中的任意ip地址。例如,参见上表2的第2列,第2列为第一次数的示例,例如,表2中第2行第2列为1,表示ip地址1.0.0.1对资源1和资源3触发的关联访问事件的次数是1。第二次数为第二ip地址对应的关联访问事件的总次数。即,同一个关联访问事件在历史访问日志中记录的总次数。例如,表2中1->3对应的第二次数为1+2+1=4。

示例性地,可以通过以下公式一,来获取每个ip地址对应的热度信息:

p(a)=a/(a+b);公式一

其中,a表示关联访问事件,p(a)表示关联访问事件的发生概率,a表示某一个ip地址的第一次数,a的取值范围为正整数或0,b表示除了a对应的ip地址之外的每个ip地址的第一次数之和,b的取值范围为正整数或0,(a+b)表示第二次数。

通过上述方式来获取热度信息,达到的效果至少可以包括:通过进行统计时,计算出每个资源的热度信息,后续当接收到访问请求时,即可通过热度信息来智能的判断关联的资源的热度是否足够,是否需要缓存,从而提高缓存利用率,能够从用户行为的角度来提高缓存精度。

在一些实施例中,关联访问信息还可以包括离散度,离散度用于表示关联访问事件的发生概率的波动变化情况,离散度越大,表示关联访问事件的发生概率的波动变化越剧烈。例如,参见下表3,表3的第3列和第4列和第7列示出了离散度,资源标识“1->3”的离散度为0.117,资源标识“3->1”的离散度为0.07,而0.117大于0.07,表明资源1被访问后,下一个被访问的资源是资源3的概率,比起资源3被访问后,下一个被访问的资源是资源1的概率的波动变化情况更剧烈。

表3

离散度的算法可以包括多种。在一些实施例中,离散度可以是同一资源标识对应的概率的标准差,例如为表3中同一列概率的标准差,可以通过以下公式二,来获取离散度。

其中,s表示标准差,即离散度。xi表示对应于同一ip地址以及同一关联访问事件的热度信息,例如为表3的一列概率中每一个概率的取值。表示平均值,例如为表3的一列概率的平均值,n为对触发同一关联访问事件的ip地址的总数量,例如对于表3而言,n可以取3。

203、电子设备接收访问请求。

204、电子设备根据访问请求,确定第一资源。

访问请求用于请求获取资源。以下方法流程中,以访问请求请求的资源为第一资源为例进行说明。访问请求可以包括第一资源的资源标识以及第一ip地址,第一ip地址为访问请求的源ip地址。电子设备可以解析访问请求,得到资源标识,根据资源标识确定第一资源。

205、电子设备根据第一资源和关联访问信息,确定第二资源。

第二资源为历史时间中第一资源被访问后下一个被访问的资源。例如,参见表2,如果第一资源为资源1,则第二资源可以是资源3。

利用关联访问信息来查找第二资源的过程,可以包括多种实现方式。在一些实施例中,电子设备可以根据第一ip地址,查询关联访问信息,得到第一ip地址对应的第二资源。其中,关联访问信息可以通过键值对的形式存储,键(key)包括ip地址,值(value)包括关联访问的不同资源的资源标识,那么电子设备可以将第一ip地址作为key,查找到第二资源。

通过上述方式,达到的效果至少可以包括:由于访问请求的源ip地址通常是请求第一资源的终端的ip地址,那么根据访问请求的源ip地址进行查询,能够精确地找到该终端曾经关联访问的第二资源,从而保证确定出的第二资源与该终端的历史访问规律匹配,体现该终端的用户的个性化操作习惯特征,从而保证找到的第二资源更加准确,是该终端后续将要请求的资源的概率更大。

实现方式一、周期性对比

如果上述采用了周期循环统计的方式,则查询关联访问信息的过程可以包括以下步骤1.1至步骤1.2:

步骤1.1电子设备可以基于接收到访问请求的时间点,确定邻近时间段。

其中,邻近时间段与时间点之间的时间间隔满足条件。例如,述邻近时间段与时间点之间的时间间隔可以小于间隔阈值,该间隔阈值可以是2小时、1天、3天等。邻近时间段的时长可以是预设时长,例如可以是3天。

步骤1.2电子设备可以读取邻近时间段对应的关联访问信息。

电子设备可以根据邻近时间段,查询时间段与关联访问信息,得到邻近时间段对应的关联访问信息。例如,每当接收到访问请求时,可以将最近3天作为邻近时间段,读取最近3天的关联访问信息。

实现方式二、同比对比

如果上述采用了同比统计的方式,则查询关联访问信息的过程可以包括以下步骤2.1至步骤2.2:

步骤2.1电子设备可以基于接收到访问请求的时间点,确定同比时间段。

其中,同比时间段和接收到访问请求的时间点所处的时间段相同,且同比时间段所处的时间周期位于接收到访问请求的时间点所处的时间周期之前。

步骤2.2电子设备可以读取同比时间段对应的关联访问信息。

电子设备可以根据同比时间段,查询时间段与关联访问信息,得到同比时间段对应的关联访问信息。例如,如果电子设备是视频应用后台的服务器,该服务器在11月20日在晚上8:00接收到了访问请求,而时间周期为1天,则同比时间段可以是前一天晚上7:00至晚上9:00,服务器可以读取11月19日晚上7:00至晚上9:00对应的关联访问信息。

通过实现方式二,达到的效果至少可以包括:考虑到很多应用中资源被访问的规律和时间相关,每天中具有高峰期和低谷期,高峰期和低谷期的访问规律具有显著差异,而不同日期的高峰期的访问规律相似,不同日期的低谷期的访问规律相似,那么如果当前在高峰期,当要识别关联资源时,若利用历史时间周期中高峰期的关联访问信息,由于利用的关联访问信息表示的访问规律与当前的访问规律近似,相比利用当前时间周期中低谷期的关联访问信息或者历史时间周期中低谷期的关联访问信息而言,找到的关联资源会更加精确。

在一些实施例中,电子设备可以对第二资源进行过滤,从而过滤掉无效的第二资源,缓存有效的第二资源。对第二资源进行过滤的方式可以有多种,以下通过实现方式一至实现方式四举例说明:

实现方式一、电子设备可以过滤掉关联访问事件的次数低于次数阈值的第二资源。

电子设备可以对每个第二资源的关联访问事件的次数与次数阈值进行比较,若第二资源的关联访问事件的次数低于次数阈值,则过滤掉该第二资源。其中,次数阈值可以是一个可配置的参数,可以根据缓存大小和缓存的存储量级来进行调整。例如,次数阈值可以配置为4。次数阈值在程序中可以记录为rth(r这个字母表示关联访问事件的次数,th这2个字母是单词threshold(阈值)的缩写,表示阈值)。

通过实现方式一,能够利用次数阈值,来过滤掉关联访问事件的次数少的无效资源,从而节省缓存无效资源后会占用的存储空间,并且由于保留了关联访问事件的次数多的资源,能够保证最终缓存的资源的命中率高。

实现方式二、电子设备可以过滤掉ip地址数量低于数量阈值的第二资源。

电子设备可以对每个第二资源对应的ip地址数量与数量阈值进行比较,若第二资源的对应的ip地址数量低于数量阈值,则过滤掉该第二资源。其中,数量阈值可以是一个可配置的参数,可以根据缓存大小和缓存的存储量级来进行调整。例如,数量阈值可以配置为3。ip地址数量的数量阈值在程序中可以记录为ipth(ip这两个字母指代ip地址的数量,th是单词threshold(阈值)的缩写,表示阈值)。

通过实现方式二,达到的效果至少可以包括:能够过滤掉访问ip少的无效资源,从而节省缓存无效资源后会占用的存储空间,并且由于保留了很多ip均关联访问的资源,能够保证最终缓存的资源的命中率高。

实现方式三、电子设备可以过滤掉离散度高于离散度阈值的第二资源。

电子设备可以对每个第二资源的离散度与离散度阈值行比较,若第二资源的离散度高于离散度阈值,则过滤掉该第二资源。例如,参见表3,离散度阈值可以设置为0.1,那么如果ip地址1.0.0.1访问资源1,查询表3,可知与资源1具有关联访问关系的是资源3,而由于资源3的离散度是0.117,高于离散度阈值,因此会缓存资源3;如果ip地址1.0.0.1访问资源3,查询表3,可知与资源3具有关联访问关系的是资源1,而资源1的离散度是0.07,低于离散度阈值,因此会过滤掉资源1,从而免去缓存资源1的动作。其中,离散度阈值可以是一个可配置的参数,可以根据缓存大小和缓存的存储量级来进行调整。

通过实现方式三,达到的效果至少可以包括:能够过滤掉离散度高的不稳定资源,即被访问的概率波动变化强烈的资源,并且由于保留了很多ip均关联访问的资源,能够保证最终缓存的资源的命中率高。

实现方式四、电子设备可以过滤掉热度信息不满足条件的第二资源。

例如,电子设备可以对每个第二资源的热度信息与热度阈值进行比较,若第二资源的热度信息低于热度阈值,则过滤掉该第二资源。又如,电子设备可以对每个第二资源按照热度信息从大到小的顺序进行排序,过滤掉热度信息排在后预设位数的第二资源。

通过实现方式四,达到的效果至少可以包括:通过结合热度信息来过滤第二资源,能保留与被访问的资源相互关联且热度高的有效资源,过滤掉虽然与被访问的资源相互关联但热度低的无效资源,从而保证缓存的资源为热点资源,提高缓存命中率。

例如,参见图3,图3的横轴表示关联访问事件的次数,横轴的正方向表示关联访问事件的次数的增长方向。图3的纵轴表示ip地址数量,纵轴的正方向表示ip地址数量的增长方向。图3的每个实心黑点表示一个第二资源,图3中的所有实心黑点表示统计出的所有第二资源,方框表示阈值,方框外的实心黑点表示过滤掉的第二资源,方框内的实心黑点表示过滤后剩余的第二资源,换句话说,方框内的实心黑点为会被缓存的第二资源。

参见下表4,可以通过上述实现方式一至实现方式四中的任一项或多项,对表3进行过滤,从而得到下表4。通过对比表3和表4可以看出,能够将有效的被关联访问的资源保留下来,过滤掉无效的被关联访问的资源。

表4

结合表4和上文中排序得到的关联访问信息,可以还原出有效的关系结果集如下:

1.0.0.1{3.txt,1.txt,3.txt,1.txt}

2.0.0.2{1.txt,3.txt,1.txt,1.txt,3.txt,1.txt}

3.0.0.3{3.txt,1.txt,3.txt}

应理解,上述实现方式一至实现方式四可以采用任意方式结合。例如,这四种过滤方式可以仅执行一种,或者执行多种。其中,如果将这四种过滤方式中两个或两个以上的过滤方式结合,不同过滤方式可以是且的关系,也可以是或的关系。以实现方式一和实现方式二结合为例,电子设备可以过滤掉关联访问事件的次数低于次数阈值或者ip地址数量低于数量阈值的第二资源,保留关联访问事件的次数高于或等于次数阈值且ip地址数量高于或等于数量阈值的第二资源,将保留的第二资源作为有效的热点资源,将其缓存起来。

还应理解,上述实现方式一至实现方式四仅是示例性说明,并不代表是过滤过程的必选方式。在另一些实施例中,也可以采用其他方式来对第二资源进行过滤,这些其他的方式作为过滤方式的一种,也应涵盖在本申请实施例的保护范围之内。

还应理解,如果实现方式一至实现方式四中的不同实现方式结合,对结合后不同实现方式执行的时序不做限定。可以某一实现方式先执行,其他实现方式后执行,也可以多种实现方式并行执行。

还应理解,第二资源的过滤步骤可以在缓存步骤之前的任一时间点下执行。例如,可以当接收到对第一资源的访问请求之后,再从关联的所有第二资源中,通过阈值来过滤第二资源。这样,就可以在资源a被访问时,通过阈值来判定是否需要缓存资源b,从而自动缓存关联的热点资源。

又如,可以将过滤步骤以及步骤201至步骤202一起提供为预处理流程,通过执行上述步骤201至步骤202,可以得到关联访问信息,该关联访问信息的形态可以如表3所示,是一个隐含资源之间关联访问关系和热度信息的矩阵,通过执行过滤步骤,来过滤掉矩阵中的无效资源,后续即可利用关联访问信息来自动化地识别和缓存有效的关联资源。

参见图4,一种可能的实现方式中,算法流程可以包括以下步骤一至步骤六:

步骤一、数据采集,按照时间对数据进行分割。

步骤二、按照ip地址分组。

步骤三、统计相互关联的资源。

步骤四、通过阈值过滤无效资源。

步骤五、计算概率。

步骤六、计算热度和离散度。

参见图5和图6,热点资源的结果集的关联访问事件的次数和ip地址数量之间的规律可以如图5和图6所示,图5和图6中横轴的正方向表示关联访问事件的次数的增长,图5和图6中纵轴的正方向表示ip地址数量的增长。图5可以用于解释资源大范围推广的场景或资源群发的场景,在起始时,访问资源的ip地址比较分散,而随着访问次数越高,ip越集中。图6可以用于解释资源定向推广的场景,在起始时,访问资源的ip地址比较集中,随着访问次数越高,ip越扩散。

206、电子设备读取第一资源和第二资源。

207、电子设备对第一资源和第二资源进行缓存。

需要说明的一点是,第二资源的数量可以是一个,也可以是多个。如果第二资源包括多个,可以对全部第二资源缓存,也可以对部分第二资源缓存。作为示例,可以设置关联级数,该关联级数表示允许缓存的第二资源的最大数量,关联级数可以是1、2或者3,当然也可以根据需求配置为其他数值。例如,如果关联级数为3,则对3个第二资源进行缓存,如果关联级数为2,则对2个第二资源进行缓存。

通过缓存第二资源,能够达到将被动缓存转换为主动缓存的效果。具体而言,相关技术中,只会被动地缓存访问请求所请求的资源,而其他资源不会得到缓存。而通过上述方法实施例,能够主动地当前未被请求,但与被请求的资源存在关联访问关系的资源也缓存起来,从而实现了一种加高效缓存的方法。

本实施例提供了支持关联资源同步缓存的方法,通过关联访问信息,来指明历史运行中不同资源的访问事件之间的关联关系,结合当前接收到的访问请求,依据当前被访问的资源,来找到历史运行中与其关联访问的资源,在进行缓存时,不仅缓存当前被访问的资源,还将与其关联的资源也缓存起来。由于很多资源之间具有关联关系,如果在某一个资源被访问,则该资源的关联资源将要被访问的概率也会很高,那么通过这种方法,可以及时、精确地识别出关联资源,并提前将关联资源存入缓存中,若接收到对关联资源的访问请求,就可以直接从缓存中读取到关联资源,从而免去了从缓存中未查找到资源时会触发的对内存或者硬盘进一步访问所带来的性能开销,因此让缓存更加高效。

上述方法实施例可以应用在多种场景。例如,可以应用在终端向服务器请求资源的任意场景。以下,通过图7实施例,结合应用场景对上述方法实施例举例说明。

图7是本申请实施例提供的一种目标应用的资源缓存方法的流程图。该实施例的交互主体包括终端、服务器和存储设备,参见图7,该方法包括:

701、服务器采集目标应用中每个资源的历史访问日志。

702、服务器对历史访问日志进行分析处理,得到关联访问信息。

703、终端生成对第一资源的访问请求,向服务器发送对第一资源的访问请求。

第一资源可以是目标应用中的任意资源,例如,第一资源可以包括下述图9实施例中的第一素材资源、下述图10实施例中的第一内容资源、下述图11实施例中的第一多媒体数据。

704、服务器接收访问请求,根据访问请求确定第一资源。

705、服务器根据第一资源和关联访问信息,确定第二资源。

第二资源可以是目标应用中与第一资源关联的任意资源,例如,第一资源可以包括下述图9实施例中的第二素材资源、下述图10实施例中的第二内容资源、下述图11实施例中的第二多媒体数据。

与步骤204对应,服务器可以根据终端的ip地址,查询关联访问信息,得到终端的ip地址对应的第二资源,该第二资源可以是历史时间中第一资源被该终端访问后下一个被该终端访问的资源。

706、服务器生成对第一资源和第二资源的访问请求,向存储设备发送对第一资源和第二资源的访问请求。

707、存储设备接收对第一资源和第二资源的访问请求,响应于访问请求,读取第一资源和第二资源,将第一资源和第二资源发送至服务器。

708、服务器对第一资源和第二资源进行缓存,向终端发送第一资源。

709、终端接收第一资源,通过目标应用提供第一资源,终端生成对第二资源的访问请求,向服务器发送对第二资源的访问请求。

710、服务器接收对第二资源的访问请求,访问缓存,得到第二资源,向终端发送第二资源。

711、终端接收第二资源,通过目标应用提供第二资源。

参见图8,图7所示的缓存方法中数据流向可以如图8所示。图8中的方框的含义是未缓存节点,即不存在资源的缓存,图8中的圆圈的含义是已缓存节点,即包含资源的缓存。图8中的分析统计计算是软件模块,可以在服务器上运行。

应理解,图7实施例中的各个步骤与图2实施例中的各个步骤同理,具体细节可参见上述图2方法实施例,为了简洁,在此不再赘述。

本实施例提供的方法,当终端请求获取目标应用的某个资源时,服务器不仅缓存终端请求访问的资源,还利用关联访问信息,将目标应用中与被请求的资源具有关联访问关系的其他资源也从存储设备中读取,并缓存起来,从而可以在终端发起对其他资源的访问请求时,可以直接从缓存中得到资源并返回给终端,免去从存储设备远程加载资源的网络开销和时延,因此能够保证终端加速获取到目标应用的资源。

以下结合目标应用的三种具体类型,通过三个应用场景举例说明。

应用场景一、可以应用在对虚拟场景中的素材资源进行缓存的场景。

虚拟场景:是应用程序在终端上运行时显示(或提供)的虚拟场景。其中,该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。再如,虚拟场景可以是桌球对战的场景,虚拟场景可以包括球桌、球杆、球、玩家得分等。又如,虚拟场景可以是模拟经营的场景,虚拟场景可以包括工厂、花草、花草农作物、当前金币值等。再如,虚拟场景可以是涂鸦的场景,虚拟场景可以包括画板、画笔等。

目标应用可以是游戏应用。例如,目标应用可以是小游戏,小游戏是指嵌入式游戏,即搭载在其他应用上来运行的游戏。比如说,可以在社交应用中搭载小游戏,社交应用可以为小游戏提供入口,对该入口触发操作后可以跳转至小游戏的界面,从而通过小游戏的界面来提供游戏功能。比如说,该小游戏可以是桌球游戏、模拟经营游戏、跳一跳游戏、盖楼游戏、虚拟宠物游戏、在线涂鸦游戏等。当然,目标应用也可以不是小游戏,而是一款独立于其他目标应用的游戏。例如,目标应用可以是第一人称射击游戏(first-personshootinggame,fps)、第三人称射击游戏、多人在线战术竞技游戏(multiplayeronlinebattlearenagames,moba)、虚拟现实目标应用、三维地图程序、军事仿真程序或者多人枪战类生存游戏中的任意一种。用户可以使用终端来操作位于虚拟场景中的虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,虚拟对象是第一虚拟人物,比如仿真人物角色或动漫人物角色。

在通过目标应用显示虚拟场景的过程中,电子设备需要加载素材资源,显示图像形式的素材资源,或者播放音频形式的素材资源,从而呈现虚拟场景。

例如,对于桌球游戏来说,当启动桌球游戏后,电子设备会加载球杆图像、球桌图像、进球得分图像等各种桌球相关的图像来进行显示,另外,还可以加载开局提示音频、进球提示音频、胜利提示音频等音频来进行播放,这些数据对于计算机来说都是素材资源,需要加载素材资源,来呈现桌球竞技的场景。当然,上述图像和音频仅是示例,素材资源可以是呈现虚拟场景所需的任意素材,素材资源可以是图像、音频、动画、文字或者其他任意数据格式,在此不做一一枚举。

对于虚拟场景关联的应用程序来说,通常所需加载的素材资源庞大,然而游戏服务器的缓存容量有限,有鉴于此,可以通过执行下述实施例提供的方法,将虚拟场景中要被关联访问的素材资源预先缓存起来,以便在终端需要在虚拟场景中显示或播放素材资源时,加速返回给终端。

图9是本申请实施例提供的一种虚拟场景中素材资源的缓存方法的流程图。该实施例的交互主体包括终端、游戏服务器和存储设备,参见图9,该方法包括:

901、游戏服务器采集虚拟场景中每个素材资源的历史访问日志。

902、游戏服务器对历史访问日志进行分析处理,得到关联访问信息。

903、终端生成对第一素材资源的访问请求,向游戏服务器发送对第一素材资源的访问请求。

第一资源为虚拟场景的素材资源,第一资源可以是任意数据格式,例如可以包括图像、音频或者文字中的至少一项。

904、游戏服务器接收访问请求,根据访问请求确定第一素材资源。

905、游戏服务器根据第一素材资源和关联访问信息,确定第二素材资源。

906、游戏服务器生成对第一素材资源和第二素材资源的访问请求,向存储设备发送对第一素材资源和第二素材资源的访问请求。

907、存储设备接收对第一素材资源和第二素材资源的访问请求,响应于访问请求,读取第一素材资源和第二素材资源,将第一素材资源和第二素材资源发送至游戏服务器。

第二资源可以包括虚拟场景中与素材资源关联显示的图像、与素材资源关联播放的音频或者与素材资源关联显示的文字中的至少一项。

908、游戏服务器对第一素材资源和第二素材资源进行缓存,向终端发送第一素材资源。

909、终端接收第一素材资源,在虚拟场景中提供第一素材资源。

910、终端生成对第二素材资源的访问请求,向游戏服务器发送对第二素材资源的访问请求。

911、游戏服务器接收对第二素材资源的访问请求,访问缓存,得到第二素材资源,向终端发送第二素材资源。

912、终端接收第二素材资源,在虚拟场景中提供第二素材资源。

应理解,图9实施例中的各个步骤与图2实施例中的各个步骤同理,具体细节可参见上述图2方法实施例,为了简洁,在此不再赘述。

本实施例提供的方法,当终端请求获取虚拟场景的某个素材资源时,游戏服务器不仅缓存终端请求访问的素材资源,还利用关联访问信息,将虚拟场景中与被请求的素材资源具有关联访问关系的其他素材资源也从存储设备中读取,并缓存起来,从而可以在终端在发起对虚拟场景中其他素材资源的访问请求时,可以直接从缓存中得到素材资源并返回给终端,免去从存储设备远程加载素材资源的网络开销和时延,因此能够保证终端加速获取到虚拟场景的素材资源,从而让虚拟场景的显示或播放更加流畅。

应用场景二、可以应用在对电子书中的内容资源进行缓存的场景。

电子书可以包括图书、漫画等,电子书可以是有声读物,即通过音频的形式提供电子书的内容资源,当然也可以不包括音频,通过在屏幕中显示文字或图像来提供电子书的内容资源。电子书的内容资源可以是电子书包含的页面、文字、音频或者图像,当然也可以是其他数据格式。

在应用场景二中,可以通过执行下述实施例提供的方法,将电子书中要被关联访问的内容资源预先缓存起来,以便在终端需要在电子书中提供该内容资源时,加速返回给终端。

图10是本申请实施例提供的一种电子书的内容资源缓存方法的流程图。该实施例的交互主体包括终端、服务器和存储设备,参见图10,该方法包括:

1001、电子书服务器采集电子书中每个内容资源的历史访问日志。

1002、电子书服务器对历史访问日志进行分析处理,得到关联访问信息。

1003、终端生成对第一内容资源的访问请求,向电子书服务器发送对第一内容资源的访问请求。

1004、电子书服务器接收访问请求,根据访问请求,确定第一内容资源。

1005、服务器根据第一内容资源和关联访问信息,确定第二内容资源。

其中,第二内容资源包括电子书中与内容资源关联显示的文字、与内容资源关联显示的图像或者与内容资源关联播放的音频中的至少一项。例如,对于一本漫画而言,通常一个页面打开后,用户会连续观看多张图片,每张图片是有顺序的呈现,那么不同图片之间关联访问的关系可以通过关联访问信息指明。比如说,当某一本图书的图片a被访问,可以通过关联访问信息,找到图片a存在关联访问关系的图片是图片a之后的图片b、图片c、图片d和图片e,从而预测图片b、图片c、图片d和图片e将要被访问,从而提取将图片b、图片c、图片d和图片e缓存起来。

1006、电子书服务器生成对第一内容资源和第二内容资源的访问请求,向存储设备发送对第一内容资源和第二内容资源的访问请求。

1007、存储设备接收对第一内容资源和第二内容资源的访问请求,响应于访问请求,读取第一内容资源和第二内容资源,将第一内容资源和第二内容资源发送至电子书服务器。

1008、电子书服务器对第一内容资源和第二内容资源进行缓存,向终端发送第一内容资源。

1009、终端接收第一内容资源,通过电子书提供第一内容资源。

1010、终端生成对第二内容资源的访问请求,向电子书服务器发送对第二内容资源的访问请求。

1011、电子书服务器接收对第二内容资源的访问请求,访问缓存,得到第二内容资源,向终端发送第二内容资源。

1012、终端接收第二内容资源,通过电子书提供第二内容资源。

应理解,图10实施例中的各个步骤与图2实施例中的各个步骤同理,具体细节可参见上述图2方法实施例,为了简洁,在此不再赘述。

本实施例提供的方法,当终端请求获取电子书的某个内容资源时,电子书服务器不仅缓存终端请求访问的内容资源,还利用关联访问信息,将电子书中与被请求的内容资源具有关联访问关系的其他内容资源也从存储设备中读取,并缓存起来,从而可以在终端在发起对电子书中其他内容资源的访问请求时,可以直接从缓存中得到内容资源并返回给终端,免去从存储设备远程加载内容资源的网络开销和时延,因此能够保证终端加速获取到电子书的内容资源,从而让电子书的显示或播放更加流畅。

应用场景三、可以应用在对音视频中的多媒体数据进行缓存的场景。

音视频可以包括歌曲、视频、电影、短视频、动画等,多媒体数据可以包括音频、视频帧、图像等。在应用场景三中,可以通过执行下述实施例提供的方法,将音视频中要被关联访问的多媒体数据预先缓存起来,以便在终端需要在播放音视频中提供该内容资源时,加速返回给终端。

图11是本申请实施例提供的一种多媒体数据的缓存方法的流程图。该实施例的交互主体包括终端、多媒体服务器和存储设备,参见图11,该方法包括:

1101、多媒体服务器采集多媒体应用中每个音视频包含的多媒体数据的历史访问日志。

1102、多媒体服务器对历史访问日志进行分析处理,得到关联访问信息。

1103、终端生成对音视频包含的第一多媒体数据的访问请求,向多媒体服务器发送对第一多媒体数据的访问请求。

1005、多媒体服务器接收访问请求,根据访问请求,确定第一多媒体数据。

1006、多媒体服务器根据第一多媒体数据和关联访问信息,确定该音视频包含的与该第一多媒体数据关联的第二多媒体数据。

1107、多媒体服务器生成对第一多媒体数据和第二多媒体数据的访问请求,向存储设备发送对第一多媒体数据和第二多媒体数据的访问请求。

1108、存储设备接收对第一多媒体数据和第二多媒体数据的访问请求,响应于访问请求,读取第一多媒体数据和第二多媒体数据,将第一多媒体数据和第二多媒体数据发送至多媒体服务器。

1109、多媒体服务器对第一多媒体数据和第二多媒体数据进行缓存,向终端发送第一多媒体数据。

1110、终端接收第一多媒体数据,通过多媒体应用提供第一多媒体数据。终端生成对第二多媒体数据的访问请求,向多媒体服务器发送对第二多媒体数据的访问请求。

1111、多媒体服务器接收对第二多媒体数据的访问请求,访问缓存,得到音视频包含的第二多媒体数据,向终端发送第二多媒体数据。

1112、终端接收第二多媒体数据,通过多媒体应用提供第二多媒体数据。

应理解,图11实施例中的各个步骤与图2实施例中的各个步骤同理,具体细节可参见上述图2方法实施例,为了简洁,在此不再赘述。

本实施例提供的方法,当终端请求获取音视频的某个多媒体数据时,多媒体服务器不仅缓存终端请求访问的多媒体数据,还利用关联访问信息,将音视频中与被请求的多媒体数据具有关联访问关系的其他多媒体数据也从存储设备中读取,并缓存起来,从而可以在终端在发起对音视频中其他多媒体数据的访问请求时,可以直接从缓存中得到多媒体数据并返回给终端,免去从存储设备远程加载多媒体数据的网络开销和时延,因此能够保证终端加速获取到音视频的多媒体数据,从而让音视频的显示或播放更加流畅。

图12是本申请实施例提供的一种资源缓存装置的结构示意图。参见图12,该装置包括:

确定模块1201,用于根据访问请求和关联访问信息,确定第一资源以及第一资源关联的第二资源,关联访问信息用于指示不同资源的历史访问日志之间的关联关系,第一资源为访问请求所请求的资源,第二资源为历史时间中第一资源被访问后下一个被访问的资源;

读取模块1202,用于读取第一资源和第二资源;

缓存模块1203,用于对第一资源和第二资源进行缓存。

本实施例提供了支持关联资源同步缓存的装置,通过关联访问信息,来指明历史运行中不同资源的访问事件之间的关联关系,结合当前接收到的访问请求,依据当前被访问的资源,来找到历史运行中与其关联访问的资源,在进行缓存时,不仅缓存当前被访问的资源,还将与其关联的资源也缓存起来。由于很多资源之间具有关联关系,如果在某一个资源被访问,则该资源的关联资源将要被访问的概率也会很高,那么通过这种方法,可以及时、精确地识别出关联资源,并提前将关联资源存入缓存中,若接收到对关联资源的访问请求,就可以直接从缓存中读取到关联资源,从而免去了从缓存中未查找到资源时会触发的对内存或者硬盘进一步访问所带来的性能开销,因此让缓存更加高效。

可选地,确定模块1201,用于根据第一网络互连协议ip地址,查询关联访问信息,得到第一ip地址对应的第二资源,第一ip地址为访问请求的源ip地址,第二资源为第一资源被第一ip地址访问后,下一个被第一ip地址访问的资源。

可选地,装置还包括:

第一获取模块,用于获取至少一个历史访问日志,每个历史访问日志包括第二ip地址、访问时间点以及资源标识,第二ip地址为历史访问请求的源ip地址,资源标识用于标识第二ip地址访问的资源;

分组模块,用于对至少一个历史访问日志中的资源标识按照第二ip地址进行分组,得到至少一个资源分组;

排序模块,用于对每个资源分组中的不同资源标识按照访问时间点的先后顺序进行排序,得到关联访问信息。

可选地,装置还包括:

第一过滤模块,用于过滤掉关联访问事件的次数低于次数阈值的第二资源,关联访问事件的次数为关联访问事件的总次数,关联访问事件是指第一资源被访问后下一个被访问的资源是第二资源的事件。

可选地,装置还包括:

第二过滤模块,用于过滤掉ip地址数量低于数量阈值的第二资源,ip地址数量为关联访问事件对应的源ip地址的总数量。

可选地,装置还包括:

第三过滤模块,用于过滤掉离散度高于离散度阈值的第二资源,离散度用于表示关联访问事件的发生概率的波动变化情况。

可选地,装置还包括:

第四过滤模块,用于过滤掉热度信息不满足条件的第二资源,热度信息表示关联访问事件的发生概率。

可选地,装置还包括:

第二获取模块,用于获取第一关联访问事件的次数与第二关联访问事件的次数之间的比值,作为热度信息,第一关联访问事件的次数为第一ip地址对应的关联访问事件的总次数,第二关联访问事件的次数为第二ip地址对应的关联访问事件的总次数。

可选地,确定模块1201,还用于基于接收到访问请求的时间点,确定邻近时间段,邻近时间段与时间点之间的时间间隔满足条件;

读取模块1202,还用于读取邻近时间段对应的关联访问信息。

可选地,确定模块1201,还用于基于接收到访问请求的时间点,确定同比时间段;

读取模块1202,还用于读取同比时间段对应的关联访问信息。

可选地,装置还包括:

采集模块,用于采集目标应用中每个资源的历史访问日志;

分析模块,用于对历史访问日志进行分析处理,得到关联访问信息。

可选地,第一资源包括虚拟场景的素材资源,第二资源包括虚拟场景中与素材资源关联显示的图像、与素材资源关联播放的音频或者与素材资源关联显示的文字中的至少一项;或者,

第一资源包括电子书中的内容资源,第二资源包括电子书中与内容资源关联显示的文字、与内容资源关联显示的图像或者与内容资源关联播放的音频中的至少一项;或者,

第一资源包括音视频包含的多媒体数据,第二资源包括音视频中与多媒体数据关联显示的文字、与多媒体数据关联显示的图像、与多媒体数据关联播放的音频中的至少一项。

上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的资源缓存装置在缓存资源时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将资源缓存装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的资源缓存装置与资源缓存方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

上述方法实施例中的电子设备可以实现为终端,例如,图13示出了本申请一个示例性实施例提供的终端1300的结构框图。该终端1300可以是:智能手机、平板电脑、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1300还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端1300包括有:一个或多个处理器1301和一个或多个存储器1302。

处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器1301所执行以实现本申请中方法实施例提供的资源缓存方法。

在一些实施例中,终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、触摸显示屏1305、摄像头组件1306、音频电路1307、定位组件1308和电源1309中的至少一种。

外围设备接口1303可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1304用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1304包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1304还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1305用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置终端1300的前面板;在另一些实施例中,显示屏1305可以为至少两个,分别设置在终端1300的不同表面或呈折叠设计;在再一些实施例中,显示屏1305可以是柔性显示屏,设置在终端1300的弯曲表面上或折叠面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1300的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可以包括耳机插孔。

定位组件1308用于定位终端1300的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1308可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源1309用于为终端1300中的各个组件进行供电。电源1309可以是交流电、直流电、一次性电池或可充电电池。当电源1309包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。

加速度传感器1311可以检测以终端1300建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1311可以用于检测重力加速度在三个坐标轴上的分量。处理器1301可以根据加速度传感器1311采集的重力加速度信号,控制触摸显示屏1305以横向视图或纵向视图进行用户界面的显示。加速度传感器1311还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1312可以检测终端1300的机体方向及转动角度,陀螺仪传感器1312可以与加速度传感器1311协同采集用户对终端1300的3d动作。处理器1301根据陀螺仪传感器1312采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1313可以设置在终端1300的侧边框和/或触摸显示屏1305的下层。当压力传感器1313设置在终端1300的侧边框时,可以检测用户对终端1300的握持信号,由处理器1301根据压力传感器1313采集的握持信号进行左右手识别或快捷操作。当压力传感器1313设置在触摸显示屏1305的下层时,由处理器1301根据用户对触摸显示屏1305的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1314用于采集用户的指纹,由处理器1301根据指纹传感器1314采集到的指纹识别用户的身份,或者,由指纹传感器1314根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1301授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1314可以被设置终端1300的正面、背面或侧面。当终端1300上设置有物理按键或厂商logo时,指纹传感器1314可以与物理按键或厂商logo集成在一起。

光学传感器1315用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1315采集的环境光强度,控制触摸显示屏1305的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1305的显示亮度;当环境光强度较低时,调低触摸显示屏1305的显示亮度。在另一个实施例中,处理器1301还可以根据光学传感器1315采集的环境光强度,动态调整摄像头组件1306的拍摄参数。

接近传感器1316,也称距离传感器,通常设置在终端1300的前面板。接近传感器1316用于采集用户与终端1300的正面之间的距离。在一个实施例中,当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变小时,由处理器1301控制触摸显示屏1305从亮屏状态切换为息屏状态;当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变大时,由处理器1301控制触摸显示屏1305从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

上述方法实施例中的电子设备可以实现为服务器,例如,图14是本申请实施例提供的一种服务器的结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)1401和一个或一个以上的存储器1402,其中,存储器1402中存储有至少一条程序代码,至少一条程序代码由处理器1401加载并执行以实现上述各个方法实施例提供的资源缓存方法。当然,该服务器还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条程序代码的存储器,上述至少一条程序代码可由处理器执行以完成上述实施例中的资源缓存方法。例如,计算机可读存储介质可以是只读存储器(read-onlymemory,简称:rom)、随机存取存储器(randomaccessmemory,简称:ram)、只读光盘(compactdiscread-onlymemory,简称:cd-rom)、磁带、软盘和光数据存储设备等。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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