买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:平安科技(深圳)有限公司
摘要:本发明适用于数据处理技术领域,提供了数据的多级缓存方法及终端设备,包括:通过获取需要缓存的目标数据及其数据信息,根据数据信息计算出该目标数据的存储等级系数,并根据该存储等级系数确定能够存储目标数据的存储介质,其次,根据该目标数据的数据量和存储介质中不同存储区块的存储量,将该目标数据存储至该存储介质中对应的缓存区块中。通过这种方式,保证了不同的数据信息的目标数据可以存储至合适的存储介质中的缓存区块中,在有效利用存储介质的缓存区块的前提下,提高了数据存储和释放的效率,以及缓存中的数据响应速度。
主权项:1.一种数据的多级缓存方法,其特征在于,包括:获取需要缓存的目标数据及其数据信息;所述数据信息中包括所述目标数据的数据量;根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质;所述存储介质中预设有不同存储量的缓存区块;根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块;所述存储介质包括客户端缓存、虚拟机缓存以及redis缓存;所述根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质,包括:根据当前时间以及所述目标数据的各项所述数据信息,计算所述目标数据的缓存等级系数;将所述缓存等级系数大于预设的第一缓存阈值的目标数据存储至所述客户端缓存中;将所述缓存等级系数小于所述第一缓存阈值且大于预设的第二缓存阈值的目标数据存储至所述虚拟机缓存中;将所述缓存等级系数小于所述第二缓存阈值的目标数据存储至所述redis缓存中;所述数据信息还包括所述目标数据的创建时间、最新访问时间和数据更新时间;所述根据当前时间以及所述目标数据的各项所述数据信息,包括:通过如下公式计算所述目标数据的缓存等级系数: 其中,用于表示所述目标数据的数据量;用于表示所述创建时间;用于表示所述当前时间;用于表示所述最新访问时间;用于表示所述数据更新时间。
全文数据:数据的多级缓存方法及终端设备技术领域本发明属于数据处理技术领域,尤其涉及数据的多级缓存方法及终端设备。背景技术应用程序或者网页在使用过程中会产生越来越多的应用数据,导致应用数据在调用的过程中存在很大的并发量,进而影响后端接口的响应速度。现有技术中通过在后端程序或者存储空间中增加缓存空间,将程序在运行时产生的应用数据存储至缓存空间中,来缓解数据存储与调用的接口压力。但是当接口高并发访问数据的情况下,依旧会出现缓存中的数据响应速度降低,而导致后台服务器存在很大的数据调用压力的问题。发明内容有鉴于此,本发明实施例提供了数据的多级缓存方法及终端设备,以解决现有技术中缓存中的数据响应速度降低,而导致后台服务器存在很大的数据调用压力的问题。本发明实施例的第一方面提供了一种数据的多级缓存方法,包括:获取需要缓存的目标数据及其数据信息;所述数据信息中包括所述目标数据的数据量;根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质;所述存储介质中预设有不同存储量的缓存区块;根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块。本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取需要缓存的目标数据及其数据信息;所述数据信息中包括所述目标数据的数据量;根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质;所述存储介质中预设有不同存储量的缓存区块;根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块。本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过获取需要缓存的目标数据及其数据信息,根据数据信息计算出该目标数据的存储等级系数,并根据该存储等级系数确定能够存储目标数据的存储介质,其次,根据该目标数据的数据量和存储介质中不同存储区块的存储量,将该目标数据存储至该存储介质中对应的缓存区块中。通过这种方式,保证了不同的数据信息的目标数据可以存储至合适的存储介质中的缓存区块中,在有效利用存储介质的缓存区块的前提下,提高了数据存储和释放的效率,以及缓存中的数据响应速度。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的数据的多级缓存方法的流程图;图2是本发明实施例二提供的数据的多级缓存方法步骤S102的具体实现流程图;图3是本发明实施例三提供的数据的多级缓存方法的流程图;图4是本发明实施例四提供的终端设备的示意图;图5是本发明实施例五提供的终端设备的示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。参见图1,图1是本发明实施例一提供的数据的多级缓存方法的流程图。本实施例中数据的多级缓存方法的执行主体包括但不限于计算机、服务器等装置,这些装置都具有数据缓存功能。如图1所示的数据的多级缓存方法可以包括以下步骤:在S101中,获取需要缓存的目标数据及其数据信息;所述数据信息中包括所述目标数据的数据量。在很多应用软件或者网页的使用过程中,会存在较多的应用数据,随着应用软件和网页的内容信息越来越复杂,用户数量和访问量越来越大,应用软件和网页需要同时支撑更多的并发量,因此,应用服务器和数据库服务器所做的计算也越来越多。但是往往应用服务器资源有限、数据库每秒能接受请求次数有限、文件的读写也是有限的。因此需要有效利用有限的资源来提供尽可能大的吞吐量,一个有效的办法就是引入缓存,每个环节中请求可以从缓存中直接获取目标数据并返回,从而减少计算量,有效提升响应速度,让有限的资源服务更多的用户。数据缓存一般是在硬盘内部的高速存储器,在电脑中就像一块缓冲器一样将一些数据暂时性的保存起来以供读取和再读取。对于大数据缓存的硬盘在存取零散文件时具有很大的优势。用户的请求从应用界面到网络传送、应用服务再到存储,然后返回到界面呈现内容。通过将第一次请求的应用数据放到存储器中,下次显示该页面先把上次保存的数据显示出来,同时去请求数据,请求完成刷新显示新数据,并将其再缓存起来,这样便能极大的减少数据请求量。获取需要缓存的目标数据,其中,目标数据可以包括应用软件或者网页在运行过程中的应用数据。目标数据的数据信息可以包括目标数据的数据类型、数据标识以及数据量等信息。通过获取需要缓存的目标数据及其数据信息,以根据该数据信息确定合适的缓存空间存储目标数据。在S102中,根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质;所述存储介质中预设有不同存储量的缓存区块。在不同的存储介质中,其存储的数据类型和存储数据的方式不同。示例性的,计算机的缓存往往使用的是随机存取存储器RandomAccessMemory,RAM,所以在用完后还是会把文件送到硬盘等存储器里永久存储。计算机里最大的缓存是内存条,最快的是中央处理器CentralProcessingUnit,CPU上镶嵌的L1和L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。其工作原理是:当CPU要读取数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;如果没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据区块调入缓存中,可以使以后对整块数据的读取都从缓存中进行,不必再调用内存。这样的读取机制CPU读取缓存的命中率非常高,也就是说CPU下一次要读取的数据90%都在CPU缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。还有一种缓存机制是页面缓存,页面缓存是将动态页面直接生成静态的页面放在服务器端,用户调取相同页面时,静态页面将直接下载到客户端,不再需要通过程序的运行和数据库的访问,大大节约了服务器的负载。每次访问页面时,会检测相应的缓存页面是否存在,若不存在,则连接数据库得到数据渲染页面并生成缓存页面文件,这样下次访问的页面文件就发挥作用了。数据库的缓存一般由数据库提供,可以对表建立高速缓存。数据库中,用户可能多次执行相同的查询语句,为了提高查询效率,数据库会在内存划分一个专门的区域,用来存放用户最近执行的查询,这块区域就是缓存。如果某个项目中有一个不经常改变的表并且服务器受到这个表的大量的相同查询时,数据缓存才能够起到不错的效果。通常情况下,针对全球广域网WorldWideWeb,Web即的应用,效果会比较明显。如现在在数据库中有一张产品信息表。企业的用户需要通过网页来查询产品的信息。如果在系统设计时,默认查询的结果是显示最近一个月交易过的产品信息。那么每次用户按默认情况查询产品信息时,将都会从缓存中获取信息,此时系统查询的速度就会比较快。浏览器缓存机制主要是超文本传输协议HyperTextTransferProtocol,HTTP协议定义的缓存机制,如Expires、Cache-control字段等,还包括非HTTP协议定义的缓存机制,例如,使用HTMLMeta标签。其中,Expires是Web服务器响应消息头字段,在响应HTTP请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。浏览器会缓存它浏览过的资源,例如网页,图片等,如果资源在保质期内,那下次同样的请求直接用缓存。过期之后,会带上资源上次的修改时间,由服务器来判断是否失效,失效的话就会给浏览器返回新的数据并继续缓存下来。浏览器的缓存,存在用户电脑的硬盘上,用户每次使用浏览器读取缓存时先将硬盘上的缓存数据加载到内存中,再读取给浏览器。浏览器端缓存的规则主要在HTTP协议头和HTML的meta标签中定义。他们分别从新鲜度和校验值两个维度来规定浏览器是直接使用缓存中的数据,还是需要去源服务器获取更新的版本。在浏览器缓存方式中存在缓存数据保质期,缓存数据必须满足以下条件,浏览器会认为它是有效的,足够新的:含有完整的过期时间控制头信息,例如HTTP协议报文头,并且仍在有效期内;浏览器已经使用过这个缓存数据,并且在上一次会话中,也就是用户上一次访问该数据时,已经检查过其新鲜度。满足以上两个情况的一种,浏览器会直接从缓存中获取缓存数据并渲染给浏览器。进一步的,在浏览器缓存方式中可以通过校验值的验证机制实现对变化数据的处理,服务器返回数据的时候有时在头信息中带上这个资源的实体标签,它可以用来作为浏览器再次请求过程的校验标识。如过发现校验标识不匹配,说明数据已经被修改或过期,浏览器需要重新获取数据内容。根据数据信息计算目标数据的缓存等级系数,通过根据该缓存等级系数确定目标数据的存储介质,确定是将这些数据存储在哪个存储介质中。可选的,可以根据目标数据的数据量和重要程度,确定目标数据的缓存等级系数,并根据该缓存等级系数确定存储该目标数据的存储介质。存储介质可以有很多种,但是各自具有不同的特点,也对应的是用于不同属性的数据。例如,客户端缓存支持动态配置,可由后台接口统一控制,适用于数据更新不频繁但访问量很大的数据。在S103中,根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块。在确定了存储介质之后,若直接将目标数据存储至该存储介质中,则会造成很多存储碎片,以及在之后调用目标数据时可能会出现延时。因此,需要对这些数据存储在存储介质的缓存空间进行统一的管理,将目标数据存储至合适的缓存区块中。在本实施例中,是将存储介质按照存储量的大小进行划分的。通过在存储介质中设置不同大小的存储量,将存储介质统一管理,以存储合适大小的数据。进一步的,步骤S103可以具体包括:设定所述存储介质中最小的缓存区块容量为Cap_blomin,按照递增因子A递增的方式设定第i个缓存区块的缓存区块容量为Cap_bloi=Ai-1Cap_blomin;若所述目标数据的所述数据量Cap_blopac满足:Ai-2Cap_blomin≤Cap_blopac≤Ai-1Cap_blomin,则将所述目标数据存储在所述存储介质中的所述第i个缓存区块中。具体的,设定所述存储介质中最小的缓存区块容量为Cap_blomin,按照递增因子A递增的方式设定第i个缓存区块的缓存区块容量为Cap_bloi=Ai-1Cap_blomin。其实质上便是以Cap_blomin为首位,以A为公比的等比数列。根据每个区块缓存容量确定该存储介质的总缓存容量,即为等比数列的求和:进一步的,还可以按照倍数的关系设定存储介质的区块容量。例如,设定所述存储介质中最小的缓存区块容量为Cap_blomin,按照倍数递增的方式设定第i个缓存区块的缓存区块容量为:Cap_bloi=i·Cap_blomin,其实质是以Cap_blomin为首项,以Cap_blomin为等差数列的方式划分存储介质的缓存容量。通过在存储介质中按照递增的方式划分不同大小的缓存区块,使不同大小的数据存储在对应的区块中,可以减少存储介质中的内存碎片,有效的管理缓存空间,使缓存空间最大化。上述方案,通过获取需要缓存的目标数据及其数据信息,根据数据信息计算出该目标数据的存储等级系数,并根据该存储等级系数确定能够存储目标数据的存储介质,其次,根据该目标数据的数据量和存储介质中不同存储区块的存储量,将该目标数据存储至该存储介质中对应的缓存区块中。通过这种方式,保证了不同的数据信息的目标数据可以存储至合适的存储介质中的缓存区块中,在有效利用存储介质的缓存区块的前提下,提高了数据存储和释放的效率,以及缓存中的数据响应速度。参见图2,图2是本发明实施例一提供的数据的多级缓存方法S102的具体实现流程图,其中,所述数据信息还包括所述目标数据的创建时间、最近一次被访问的最新访问时间、最近一次被更新的数据更新时间。如图2所示的数据的多级缓存方法可以包括以下步骤:在S201中,根据当前时间以及所述目标数据的各项所述数据信息,计算所述目标数据的缓存等级系数。若需要将一组目标数据存储于存储介质中,则需要先确定这组数据的数据信息。在本实施例中,数据信息可以包括目标数据的创建时间、最新访问时间、数据更新时间、当前时间以及数据量。其中,目标数据的创建时间用于表示最新的目标数据的生成时间,由于在应用程序和网页运行过程中可能生成很多类型的新数据,新数据可以覆盖原先的旧数据,因此,需要确定目标数据的生成时间。最新访问时间用于表示目标数据最近一次被访问或者调用的时间,用于衡量数据的新鲜度和使用频率。数据更新时间用于表示在应用程序和网页运行过程中,肯定会有数据的修改或者更新,因此,数据更新时间用于表示对同一数据类型或者同一数据标识的数据的更新时间。当前时间用于表示获取到目标数据之后,计算目标数据的缓存等级系数的时刻。数据量用于表示需要缓存的目标数据的数据量的大小,用于体现该目标数据将占用的存储介质的存储空间的大小。进一步的,在本实施例中,可以先确定目标数据的数据标识,根据该数据标识确定缓存中该数据标识所对应的数据,将目标数据和缓存中的数据进行对比,如果没有发生变化,则不将目标数据放入缓存,继续使用原先的缓存数据;若发生变化,则确定发生变化的目标数据的数值或者变化情况,根据变化情况将变化部分的数据存储至存储介质中。在确定了目标数据的创建时间、最新访问时间、数据更新时间、当前时间以及所述数据量之后,通过如下公式计算所述目标数据的缓存等级系数:其中,Qua用于表示所述目标数据的数据量;Time_cre用于表示所述创建时间;Time_cur用于表示所述当前时间;Time_las用于表示所述最新访问时间;Time_mod用于表示所述数据更新时间。具体的,如果目标数据具有较大的数据量、创建时间较长而最新访问时间较小,则该目标数据具有较高的缓存等级系数,可以将其存储在等级较高的存储介质中;同时,如果目标数据的数据量较小、创建时间较短而最新访问时间较长,则该目标数据具有较低的缓存等级系数,可以将其存储在等级较低的存储介质中。在S202中,将所述缓存等级系数大于预设的第一缓存阈值的目标数据存储至所述客户端缓存中;将所述缓存等级系数小于所述第一缓存阈值且大于预设的第二缓存阈值的目标数据存储至所述虚拟机缓存中;将所述缓存等级系数小于所述第二缓存阈值的目标数据存储至所述redis缓存中。在确定了目标数据的缓存等级系数之后,通过预先设定两个等级阈值G1、G2;且G1G2,将得到的G值与两个阈值进行比较,根据各个存储介质的特性,将不同缓存等级系数的目标数据存储至对应的存储介质中。其中,客户端缓存支持动态配置,可由后台接口统一控制,客户端缓存适用数据更新不频繁但访问量很大的接口;由于redis对大对象的缓存支持不够好,而且比较消耗数据输入输出的资源,则通过虚拟机缓存来弥补redis缓存的缺陷。具体的,若:G1G,将数据缓存于客户端缓存中;G1=G,将数据缓存于客户端缓存和或虚拟机缓存中;G2GG1,将数据缓存于虚拟机缓存中;G=G2,将数据缓存于虚拟机缓存和或redis缓存中;GG2,将数据缓存于redis缓存中。进一步的,每次定级后G1、G2的值都将根据各存储介质的剩余缓存空间得到更新,使其处于动态平衡。缓存空间低时,按规律增大G1、G2值,使更少的文件达到缓存要求,并尽快释放缓存空间;缓存空间充足时,按规律减小G1、G2值,使得读取的数据都能进入缓存中。进一步的,由于数据库具有较多的存储资源,因此可以同时将这些目标数据存储至数据库中。由数据库提供,可以对数据表建立的高速缓存。数据库的数据临时保存在一个位置上,再次同样的请求直接把这个数据返回去,而不需要再次去查询各种表取数据了,减少了查数据库的时间,提升效率。并不是所有的历史记录都缓存起来,要有策略,比如只缓存两个月的数据,并且两个月之前有请求过之后不再请求该数据的时候就会回收,就是把这条记录抹掉,就近多次请求的才会保存。时间过长、使用率不高的优先清除,要不然缓存太多就失去了缓存的本质和意义。在数据库中,数据都是存放在磁盘中的。虽然数据库层做了对应的缓存,但这种数据库层次的缓存一般针对的是查询内容,一般只有表中数据没有变更的时候,数据库对应的缓存才发挥了作用。有时并不能减少业务系统对数据库产生的增、删、查、改产生的庞大压力。此时,一般的做法是在数据库与业务服务器之间增加一个缓存服务器,比如我们熟悉的redis。客户端第一次请求的数据从数据库拿出后就放到了redis中,数据不过期或不更改的前提下,下一次的请求都从redis中直接拿数据,这样做极大的缓解了数据库的压力。上述方案,通过根据目标数据的创建时间、最新访问时间、数据更新时间、当前时间以及数据量,计算出目标数据的缓存等级系数,并将该缓存等级系数与预设的缓存阈值对比,确定该目标数据可以存放的存储介质。使不同缓存等级系数对应的目标数据可以存储在不同的存储介质中,以通过对应的存储介质调用或者处理不同类型的目标数据,提高数据的处理和响应速度。参见图3,图3是本发明实施例一提供的数据的多级缓存方法的流程图。如图3所示的数据的多级缓存方法可以包括以下步骤:在S301中,接收目标数据的调用请求;所述调用请求中包含所述目标数据的数据信息。当用户通过浏览器发起一个数据请求的时候,浏览器会通过以下几步来获取数据:本地缓存阶段:先在本地查找该数据,如果有发现该数据,而且该数据还没有过期,就使用此数据,不会发送HTTP请求到服务器;协商缓存阶段:如果在本地缓存找到对应的数据,但是不知道该数据是否过期,则发一个HTTP请求到服务器,然后服务器判断这个请求,如果请求的数据在服务器上没有改动过或过期,则返回304状态码可以理解为服务器给浏览器的暗号,让浏览器在本地找到该数据;缓存失败阶段:当服务器发现请求的资源已经修改过,或者这是一个新的请求,服务器则返回该数据,并且返回200状态码,此过程的前提是指找到该数据,如果服务器上没有数据,则返回404。在本实施例中,所接收到的目标数据的调用请求中包含目标数据的数据信息,其中,数据信息可以包括:目标数据的创建时间、最新访问时间、数据更新时间、当前时间以及所述数据量。用于通过这些信息确定所需要的目标数据存储在哪个存储介质以及缓存区块中。在S302中,根据所述数据信息确定存储所述目标数据的存储介质及其中的缓存区块。在实际应用中,在将目标数据存储至存储介质中之后,则会在前端需要的情况下,从存储介质中调用所需要的目标数据。一般情况下,可以通过结构化查询语言StructuredQueryLanguage,SQL语句查询目标数据,但是,要两条完全相同的SQL语句才能够从存储介质中查找到对应的目标数据。条件不同或者使用的字段不同,数据库系统都不会使用缓存来进行查询优化。另外对于SQL语句解析来说,其大小写实敏感的,也就是说同一条查询语句,如果其关键字的大小写不同,那么也会被认为是用了不同的SQL语句。针对这种情况,本实施例中,通过自动确定目标数据的存储位置,以进行目标数据的查找和调用。在获取到目标数据的调用请求之后,根据该调用请求确定数据信息,并根据该数据信息计算所需要的目标数据的缓存等级系数。为了保证查询和存储的数据地址的统一,具体的缓存等级系数计算方法同实施例二中的步骤S201中的实施方法,此处不做赘述。在计算得到目标数据的缓存等级系数之后,通过预设的等级阈值确定目标数据的存储介质,具体的确定方法同步骤S202,此处不做赘述。在确定存储介质之后,根据目标数据的数据量以及存储介质中的缓存区块的区块容量,确定目标数据在该存储介质中的缓存区块中,具体的确定方法同步骤S103中的实施方法,此处不做赘述。在S303中,从所述存储介质的所述缓存区块中调用所述目标数据。在实际应用中,在将目标数据存储至存储介质中之后,则会在前端需要的情况下,从存储介质中调用所需要的目标数据。一般情况下,可以通过结构化SQL语句查询目标数据,但是,要两条完全相同的SQL语句才能够从存储介质中查找到对应的目标数据。条件不同或者使用的字段不同,数据库系统都不会使用缓存来进行查询优化。另外MySQL数据库与其他数据库不一样,对于SQL语句解析来说,其大小写实敏感的。也就是说同一条查询语句,如果其关键字的大小写不同,那么也会被认为是用了不同的SQL语句。针对这种情况,本实施例中,通过自动确定目标数据的存储位置,以进行目标数据的查找和调用。在本实施例中,在确定了存储目标数据的存储介质及其中的缓存区块之后,从该存储介质中的缓存区块的地址中直接调用对应的目标数据。进一步的,由于数据库具有较多的存储资源,因此可以同时将这些目标数据存储至数据库中。但是在调用数据时,可以先确定对应的存储介质和缓存区块,并在该存储介质的缓存区块中查找数据,只有当以上缓存都失效或不启用时接口才会访问数据库,这样可以很大程度减轻数据库的压力,同时提升接口的响应速度。上述方案,在接收到目标数据的调用请求之后,根据调用请求中的目标数据的数据信息确定存储该目标数据的存储介质及其中的缓存区块,最后直接从存储介质的缓存区块中调用目标数据。避免了通过词条查找语句查找目标数据的不确定性,提高了目标数据调用或者释放的效率,同时也提高了缓存的调用效率。参见图4,图4是本发明一实施例提供的一种终端设备的示意图。终端设备400可以为计算机、服务器等设备,该终端设备具有数据的多级缓存功能。本实施例的装置400包括的各单元用于执行图1对应的实施例中的各步骤,具体请参阅图1及图1对应的实施例中的相关描述,此处不赘述。本实施例的装置400包括:数据获取单元401、介质确定单元402或数据存储单元403。数据获取单元401,用于获取需要缓存的目标数据及其数据信息;所述数据信息中包括所述目标数据的数据量;介质确定单元402,用于根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质;所述存储介质中预设有不同存储量的缓存区块;数据存储单元403,用于根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块。所述存储介质包括客户端缓存、虚拟机缓存以及redis缓存;进一步的,所述介质确定单元402可以包括:系数计算单元,用于根据当前时间以及所述目标数据的各项所述数据信息,计算所述目标数据的缓存等级系数;系数对比单元,用于将所述缓存等级系数大于预设的第一缓存阈值的目标数据存储至所述客户端缓存中;将所述缓存等级系数小于所述第一缓存阈值且大于预设的第二缓存阈值的目标数据存储至所述虚拟机缓存中;将所述缓存等级系数小于所述第二缓存阈值的目标数据存储至所述redis缓存中。进一步的,所述系数计算单元具体可以用于:通过如下公式计算所述目标数据的缓存等级系数:其中,Qua用于表示所述目标数据的数据量;Time_cre用于表示所述创建时间;Time_cur用于表示所述当前时间;Time_las用于表示所述最新访问时间;Time_mod用于表示所述数据更新时间。进一步的,所述数据存储单元403可以包括:容量设定单元,用于设定所述存储介质中最小的缓存区块容量为Cap_blomin,第i个缓存区块的缓存区块容量为Cap_bloi=Ai-1Cap_blomin;区块存储单元,用于若所述目标数据的所述数据量Cap_blopac满足:Ai-2Cap_blomin≤Cap_blopac≤Ai-1Cap_blomin,则将所述目标数据存储在所述存储介质中的所述第i个缓存区块中;其中,A用于表示相邻大小的缓存区块容量之比。进一步的,所述终端设备还可以包括:数据请求单元,用于接收目标数据的调用请求;所述调用请求中包含所述目标数据的数据信息;存储确定单元,用于根据所述数据信息确定存储所述目标数据的存储介质及其中的缓存区块;数据调用单元,用于从所述存储介质的所述缓存区块中调用所述目标数据。上述方案,通过获取需要缓存的目标数据及其数据信息,根据数据信息计算出该目标数据的存储等级系数,并根据该存储等级系数确定能够存储目标数据的存储介质,其次,根据该目标数据的数据量和存储介质中不同存储区块的存储量,将该目标数据存储至该存储介质中对应的缓存区块中。通过这种方式,保证了不同的数据信息的目标数据可以存储至合适的存储介质中的缓存区块中,在有效利用存储介质的缓存区块的前提下,提高了数据存储和释放的效率,以及缓存中的数据响应速度。图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个数据的多级缓存方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块单元的功能,例如图4所示单元401至403的功能。示例性的,所述计算机程序52可以被分割成一个或多个模块单元,所述一个或者多个模块单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。所称处理器50可以是中央处理单元CentralProcessingUnit,CPU,还可以是其他通用处理器、数字信号处理器DigitalSignalProcessor,DSP、专用集成电路ApplicationSpecificIntegratedCircuit,ASIC、现成可编程门阵列Field-ProgrammableGateArray,FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡SmartMediaCard,SMC,安全数字SecureDigital,SD卡,闪存卡FlashCard,FC等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。所述集成的模块单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
权利要求:1.一种数据的多级缓存方法,其特征在于,包括:获取需要缓存的目标数据及其数据信息;所述数据信息中包括所述目标数据的数据量;根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质;所述存储介质中预设有不同存储量的缓存区块;根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块。2.如权利要求1所述的数据的多级缓存方法,其特征在于,所述存储介质包括客户端缓存、虚拟机缓存以及redis缓存;所述根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质,包括:根据当前时间以及所述目标数据的各项所述数据信息,计算所述目标数据的缓存等级系数;将所述缓存等级系数大于预设的第一缓存阈值的目标数据存储至所述客户端缓存中;将所述缓存等级系数小于所述第一缓存阈值且大于预设的第二缓存阈值的目标数据存储至所述虚拟机缓存中;将所述缓存等级系数小于所述第二缓存阈值的目标数据存储至所述redis缓存中。3.如权利要求2所述的数据的多级缓存方法,其特征在于,所述数据信息还包括所述目标数据的创建时间、最新访问时间和数据更新时间;所述根据当前时间以及所述目标数据的各项所述数据信息,包括:通过如下公式计算所述目标数据的缓存等级系数:其中,Qua用于表示所述目标数据的数据量;Time_cre用于表示所述创建时间;Time_cur用于表示所述当前时间;Time_las用于表示所述最新访问时间;Time_mod用于表示所述数据更新时间。4.如权利要求1所述的数据的多级缓存方法,其特征在于,所述根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块,包括:设定所述存储介质中最小的缓存区块容量为Cap_blomin,第i个缓存区块的缓存区块容量为Cap_bloi=Ai-1Cap_blomin;若所述目标数据的所述数据量Cap_blopac满足:Ai-2Cap_blomin≤Cap_blopac≤Ai-1Cap_blomin,则将所述目标数据存储在所述存储介质中的所述第i个缓存区块中;其中,A用于表示相邻大小的缓存区块容量之比。5.如权利要求1-4任一项所述的数据的多级缓存方法,其特征在于,所述方法还包括:接收目标数据的调用请求;所述调用请求中包含所述目标数据的数据信息;根据所述数据信息确定存储所述目标数据的存储介质及其中的缓存区块;从所述存储介质的所述缓存区块中调用所述目标数据。6.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如下步骤:获取需要缓存的目标数据及其数据信息;所述数据信息中包括所述目标数据的数据量;根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质;所述存储介质中预设有不同存储量的缓存区块;根据所述存储介质中缓存区块的存储量以及所述目标数据的所述数据量,将所述目标数据存储在所述存储介质中对应的缓存区块。7.如权利要求6所述的终端设备,其特征在于,所述存储介质包括客户端缓存、虚拟机缓存以及redis缓存;所述根据所述数据信息计算所述目标数据的缓存等级系数,并根据所述缓存等级系数确定存储所述目标数据的存储介质,包括:根据当前时间以及所述目标数据的各项所述数据信息,计算所述目标数据的缓存等级系数;将所述缓存等级系数大于预设的第一缓存阈值的目标数据存储至所述客户端缓存中;将所述缓存等级系数小于所述第一缓存阈值且大于预设的第二缓存阈值的目标数据存储至所述虚拟机缓存中;将所述缓存等级系数小于所述第二缓存阈值的目标数据存储至所述redis缓存中。8.如权利要求7所述的终端设备,其特征在于,所述数据信息还包括所述目标数据的创建时间、最新访问时间和数据更新时间;所述根据当前时间以及所述目标数据的各项所述数据信息,包括:通过如下公式计算所述目标数据的缓存等级系数:其中,Qua用于表示所述目标数据的数据量;Time_cre用于表示所述创建时间;Time_cur用于表示所述当前时间;Time_las用于表示所述最新访问时间;Time_mod用于表示所述数据更新时间。9.如权利要求6所述的数据的多级缓存方法,其特征在于,所述根据所述存储介质中不同缓存区块的存储量以及所述目标数据的所述数据量,确定将所述目标数据存储在所述存储介质中对应的缓存区块,包括:设定所述存储介质中最小的缓存区块容量为Cap_blomin,第i个缓存区块的缓存区块容量为Cap_bloi=Ai-1Cap_blomin;若所述目标数据的所述数据量Cap_blopac满足:Ai-2Cap_blomin≤Cap_blopac≤Ai-1Cap_blomin,则将所述目标数据存储在所述存储介质中的所述第i个缓存区块中;其中,A用于表示相邻大小的缓存区块容量之比。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
百度查询: 平安科技(深圳)有限公司 数据的多级缓存方法及终端设备
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。