大数据量数据的写入、读取方法、装置及设备
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种大数据量数据的写入、读取方法、装置及设备。
背景技术
缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。在传统的缓存读写方法中,通常只进行一次读取或者写入。如果读写过程中出现网络超时,则进行重试。
然而,当待读写数据为大数据量数据时,在数据读写的过程中很容易出现超时。这里的大数据量数据是指数据大小超过阈值的数据。此外,一次性读写大数据量数据时,通常也会占用比较大的带宽,而且也会对其它的缓存读写请求造成影响。
因此,需要提供一种更有效地大数据量数据的读写方法。
发明内容
本说明书一个或多个实施例描述了一种大数据量数据的写入、读取方法、装置及设备,可以大大提升大数据量数据读写的成功率。
第一方面,提供了一种大数据量数据的写入方法,包括:
获取待写入数据;
按照预定块大小,对所述待写入数据进行拆分,得到按序排列的多块数据;
从最后一块数据开始,按照从后往前的顺序,依次将所述多块数据以键值key_value对的形式写入缓存中;
对于所述多块数据中任意的第一数据,所述第一数据对应的第一key_value对包括第一key值和第一value值,其中,所述第一key值用于唯一地标识所述第一key_value对;所述第一value值包括第一数据部分和第二数据部分,所述第一数据部分为所述第一数据本身,所述第二数据部分为第二数据对应的第二key_value对的第二key值;所述第二数据与所述第一数据相邻,且所述第二数据的排列次序位于所述第一数据之后。
第二方面,提供了一种大数据量数据的读取方法,包括:
接收数据访问请求,并基于接收的所述数据访问请求,确定按序排列的多块数据中首块数据对应的key_value对的key值;所述多块数据基于待读取的大数据量数据划分得到;
对于所述多块数据中任意的第一数据,所述第一数据与缓存中的第一key_value对相对应,所述第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识所述第一key_value对;第一value值包括第一数据部分和第二数据部分,所述第一数据部分为所述第一数据本身,所述第二数据部分为第二数据对应的第二key_value对的第二key值;所述第二数据与所述第一数据相邻,且所述第二数据的排列次序位于所述第一数据之后;
基于所述key值,从所述缓存中读取所述首块数据对应的key_value对;
基于读取的所述key_value对的value值的第一数据部分,确定所述首块数据,并将所述首块数据放入预定数据集合中;
基于读取的所述key_value对的value值的第二数据部分,确定所述多块数据中其它块数据,并将所述其它块数据放入所述预定数据集合中。
第三方面,提供了一种大数据量数据的写入装置,包括:
获取单元,用于获取待写入数据;
拆分单元,用于按照预定块大小,对所述获取单元获取的所述待写入数据进行拆分,得到按序排列的多块数据;
写入单元,用于从最后一块数据开始,按照从后往前的顺序,依次将所述拆分单元拆分得到的所述多块数据以键值key_value对的形式写入缓存中;
对于所述多块数据中任意的第一数据,所述第一数据对应的第一key_value对包括第一key值和第一value值,其中,所述第一key值用于唯一地标识所述第一key_value对;所述第一value值包括第一数据部分和第二数据部分,所述第一数据部分为所述第一数据本身,所述第二数据部分为第二数据对应的第二key_value对的第二key值;所述第二数据与所述第一数据相邻,且所述第二数据的排列次序位于所述第一数据之后。
第四方面,提供了一种大数据量数据的读取装置,包括:
接收单元,用于接收数据访问请求;
确定单元,用于基于所述接收单元接收的所述数据访问请求,确定按序排列的多块数据中首块数据对应的key_value对的key值;所述多块数据基于待读取的大数据量数据划分得到;
对于所述多块数据中任意的第一数据,所述第一数据与缓存中的第一key_value对相对应,所述第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识所述第一key_value对;第一value值包括第一数据部分和第二数据部分,所述第一数据部分为所述第一数据本身,所述第二数据部分为第二数据对应的第二key_value对的第二key值;所述第二数据与所述第一数据相邻,且所述第二数据的排列次序位于所述第一数据之后;
读取单元,用于基于所述确定单元确定的所述key值,从所述缓存中读取所述首块数据对应的key_value对;
所述确定单元,还用于基于所述读取单元读取的所述key_value对的value值的第一数据部分,确定所述首块数据,并将所述首块数据放入预定数据集合中;
所述确定单元,还用于基于所述读取单元读取的所述key_value对的value值的第二数据部分,确定所述多块数据中其它块数据,并将所述其它块数据放入所述预定数据集合中。
第五方面,提供了一种大数据量数据的写入设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
获取待写入数据;
按照预定块大小,对所述待写入数据进行拆分,得到按序排列的多块数据;
从最后一块数据开始,按照从后往前的顺序,依次将所述多块数据以键值key_value对的形式写入缓存中;
对于所述多块数据中任意的第一数据,所述第一数据对应的第一key_value对包括第一key值和第一value值,其中,所述第一key值用于唯一地标识所述第一key_value对;所述第一value值包括第一数据部分和第二数据部分,所述第一数据部分为所述第一数据本身,所述第二数据部分为第二数据对应的第二key_value对的第二key值;所述第二数据与所述第一数据相邻,且所述第二数据的排列次序位于所述第一数据之后。
第六方面,提供了一种大数据量数据的读取设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
接收数据访问请求,并基于接收的所述数据访问请求,确定按序排列的多块数据中首块数据对应的key_value对的key值;所述多块数据基于待读取的大数据量数据划分得到;
对于所述多块数据中任意的第一数据,所述第一数据与缓存中的第一key_value对相对应,所述第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识所述第一key_value对;第一value值包括第一数据部分和第二数据部分,所述第一数据部分为所述第一数据本身,所述第二数据部分为第二数据对应的第二key_value对的第二key值;所述第二数据与所述第一数据相邻,且所述第二数据的排列次序位于所述第一数据之后;
基于所述key值,从所述缓存中读取所述首块数据对应的key_value对;
基于读取的所述key_value对的value值的第一数据部分,确定所述首块数据,并将所述首块数据放入预定数据集合中;
基于读取的所述key_value对的value值的第二数据部分,确定所述多块数据中其它块数据,并将所述其它块数据放入所述预定数据集合中。
本说明书一个或多个实施例提供的大数据量数据的写入、读取方法、装置及设备,获取待写入数据。按照预定块大小,对待写入数据进行拆分,得到按序排列的多块数据。从最后一块数据开始,按照从后往前的顺序,依次将多块数据以键值key_value对的形式写入缓存中。对于多块数据中任意的第一数据,该第一数据对应的第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识第一key_value对。第一value值包括第一数据部分和第二数据部分,第一数据部分为第一数据本身,第二数据部分为第二数据对应的第二key_value对的第二key值。第二数据与第一数据相邻,且第二数据的排列次序位于第一数据之后。也即本说明书提供的方案中,首先会对待写入数据进行分块,之后依次向缓存中写入各块数据。由此,可以大大降低单次数据写入耗时,从而可以提升大数据量数据写入的成功率。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的大数据量数据的读写方法的应用场景示意图;
图2为本说明书一个实施例提供的大数据量数据的写入方法流程图;
图3为本说明书提供的大数据量数据的写入过程示意图;
图4为本说明书提供的大数据量数据的读取过程示意图;
图5为本说明书一个实施例提供的大数据量数据的读取方法流程图;
图6为本说明书一个实施例提供的大数据量数据的写入装置示意图;
图7为本说明书一个实施例提供的大数据量数据的读取装置示意图;
图8为本说明书一个实施例提供的大数据量数据的写入设备示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书提供的方案之前,先对本方案的发明构思作以下说明。
如背景技术的内容所述,当通过传统的缓存读写方法,读写大数据量数据时,容易出现超时的情况。为避免超时的问题,申请人考虑,对待写入的大数据量数据进行拆分,以得到按序排列的多块数据。之后,从最后一块数据开始,按照从后往前的顺序将该多块数据分多次写入缓存中。然而,由于该多块数据是基于同一数据拆分得到,它们之间是具有关联性的。因此,需要建立该多块数据之间的关联性。为建立该关联性,本方案提供了如下解决思路:
申请人考虑,缓存中的数据均是以键值(key_value)对的形式存储的,因此可以基于key_value对来建立上述关联性。以相邻两块数据的关联性建立方法为例来说,假设该相邻的两块数据为:第一数据和第二数据,第一数据为排序在前的数据,第二数据为排序在后的数据。那么在向缓存中写入第一数据时,可以先随机生成相应的第一key值,该第一key值用于标识与第一数据相对应的key_value对。之后,可以获取与第二数据对应的key_value对的第二key值。这里,按照前述从后往前写入的思想,在写入第一数据时,由于第二数据已被写入缓存中,从而与第二数据对应的key_value对的第二key值也已生成,因此可以直接获取该第二key值。最后,基于第二key值以及第一数据生成第一数据对应的key_value对的第一value值,以及将第一key值和第一value值作为第一数据对应的key_value写入缓存中。由此,就建立了相邻两块数据的关联性。
也就是说,本方案通过对在前的数据所对应的key_value对添加在后的数据对应的key_value对的key值,来建立相邻两块数据的关联性。
可以理解的是,当所有相邻的块数据两两串联之后,所有块数据可以以链表的形式串联起来。
以上就是本说明书提供的发明构思,基于该发明构思就可以得到本说明书提供的方案,以下对该方案进行详细阐述。
图1为本说明书提供的大数据量数据的读写方法应用场景示意图。图1中,交易系统10可以向缓存系统20中写入数据。此外,交易系统10也可以从缓存系统20中读取数据。对于数据写入过程,当待写入数据为大数据量数据时,可以按照预定块大小,对待写入数据进行拆分,得到按序排列的多块数据。之后,从最后一块数据开始,按照从后往前的顺序,依次将多块数据以键值key_value对的形式写入缓存中。对于上述大数据量数据的读取过程,可以首先确定上述多块数据中首块数据对应的key_value对的key值,之后从缓存中读取基于该key值通过链表的形式串联的多块数据。
图2为本说明书一个实施例提供的大数据量数据的写入方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,可以为图1中的交易系统10。如图2所示,所述方法具体可以包括:
步骤202,获取待写入数据。
以商品营销场景为例来说,这里的待写入数据可以是指若干优惠商品的商品标识。具体地,在该场景下,交易系统可以接收商户的单品优惠券活动创建指令。该创建指令至少包括与该单品优惠券相对应的所有优惠商品。响应于该创建指令,交易系统可以创建相应的电子券模板,该电子券模板中包括模板标识以及电子券基本属性信息(如,电子券有效期以及电子券面额等)。在电子券模板创建好之后,交易系统可以执行入下两种操作:第一,基于电子券模板生成电子券,并向用户发送电子券。第二,生成优惠商品列表,该优惠商品列表中可以记录有上述所有优惠商品的商品标识。
需要说明的是,在上述场景下,当领取到电子券的用户在购买商品时,交易系统通常需要判断用户当前所购买商品是否为该电子券的优惠商品。具体判断过程可以为:将当前所购买商品的商品标识与优惠商品列表中记录的商品标识进行匹配。需要说明的是,为了提升上述匹配效率,通常需要将优惠商品列表中所有商品的商品标识写入缓存中。
步骤204,按照预定块大小,对待写入数据进行拆分,得到按序排列的多块数据。
具体地,可以首先判断待写入数据的大小是否大于阈值。如果否,则直接将待写入数据写入所述缓存中。如果是,则按照预定块大小,对待写入数据进行拆分。
步骤204中的预定块大小可以基于缓存系统单次读写的数据大小确定。当然,也可以人为根据经验值设定。
还以商品营销场景为例来说,上述拆分得到的多块数据中的每块数据可以为优惠商品列表中部分商品的商品标识。具体地,当将待写入数据表示为:SQID1SQID2SQID3...SQIDN时,其中,N为所有参与优惠活动商品的数量。拆分得到的各块数据可以分别表示为:
数据1:SQID1SQID2 SQID3…SQIDi;
数据2:SQIDi+1SQIDi+2 SQID i+3…SQID2i;
…
数据n:SQIDmSQIDm+1 SQID m+2…SQIDN。
其中,n<=N,i,m均为小于N的正整数。
也即,针对上述N个商品的商品标识,可以拆分得到n块数据。
步骤206,从最后一块数据开始,按照从后往前的顺序,依次将多块数据以键值key_value对的形式写入缓存中。
结合前述例子来说,可以按照如下顺序将各块数据写入缓存中:
数据n、数据n-1、…、数据2以及数据1。
以上述各块数据中数据x(其中,x为正整数,且1<=x<=n)为例,对数据的写入过程进行说明。
首先,可以随机生成相应的keyx,该keyx用于标识与数据x相对应的key_value对。之后,可以获取与数据x+1对应的key_value对的key2。这里,按照前述从后往前写入的思想,在写入数据x时,由于数据x+1已被写入缓存中,从而与数据x+1对应的key_value对的keyx+1也已生成(其生成方法同keyx),因此可以直接获取该keyx+1。最后,基于keyx+1以及数据x生成数据x对应的key_value对的valuex,以及将keyx和valuex作为数据x对应的key_value对写入缓存中。
由上可以看出,本说明书所述的key_value对的value值可以包括两部分:当前块数据(称为第一数据部分)以及下块数据的key_value对的key值(称为第二数据部分)。
需要说明的是,当x=n时,也即在写入数据n时,由于其没有在后的数据,因此,可以基于空值以及数据n生成数据n对应的key_value对的value值。
另外,需要说明的是,在商品营销场景下,当x=1时,也就是说在写入数据1时,这里的数据1即为优惠商品中部分商品的SQID,可以基于优惠商品所对应优惠券的电子券模板的模板标识,生成对应的key_value对的key值。也即将模板标识作为优惠商品列表中的商品标识拆分得到的多块数据中,首块数据对应的key_value对的key值。
可以理解的是,在将上述n块数据均写入缓存中后,各块数据各自对应的key_value对在缓存中通过链表的形式相互串联。
在一个例子中,本说明书提供的基于大数量数据拆分得到的多块数据的写入过程可以如图3所示。图3中,首先写入数据n,之后,在写入数据n-1时,可以将数据n对应的key_value对的keyn,写入到数据n-1对应的key_value对的value值的第二数据部分。由此,可以将数据n-1和数据n相互串联,类似地,可以对其它相邻块数据进行相互串联,由此就构成了如图3所示的链表的形式。从图3可以看出,本说明书的写入方法是按照从后往前的顺序来写入各块数据的。
需要说明的是,在将拆分得到的多块数据均写入缓存后,可以在预设的存储单元中存储该多块数据中首块数据对应的key_value对的key值,以便后续可以读取基于该key值,读取上述多块数据。
本说明书通过将大数据量数据通过分块的方式写入缓存的方法,可以减少交易系统对缓存系统的单次访问时间,进而可以大大提升大数据量数据写入的成功率。此外,本说明书从后往前的数据写入方式,可以避免在数据未写入完成的情况下,就对外部访问请求响应(这里,生成首块数据对应的key_value对的key值,即可对外部访问请求进行响应)时,由于部分块数据为写入完成而响应失败的问题。
以上是本说明书对大数据量数据的写入方法的说明,以下对分块写入缓存的大数据量数据的读取过程进行说明。
步骤a,获取多块数据中首块数据对应的key_value对的key值。
这里可以是从上述存储单元中读取多块数据中首块数据对应的key_value对的key值。
在前述商品营销场景中,交易系统可以是基于用户的商品购买请求,来确定首块数据对应的key_value对的key值。这里的商品购买请求可以包括用户标识以及商品标识。具体地,交易系统在接收到商品购买请求之后,通常需要判断当前用户是否已领取电子券。若已领取,则判断用户当前所购买商品是否为该电子券相对应的优惠商品。对于用户是否已领取电子券的判断,可以基于商品购买请求中的用户标识来判断。对于是否为优惠商品的判断,则需要将商品购买请求中的商品标识与优惠商品列表中的商品标识进行匹配。而假设如前所述,优惠商品列表中的商品标识已经按块被写入到缓存中,那么,要实现该匹配,就要从缓存中读取出优惠商品列表中的商品标识。而该读取过程的实现的前提是确定基于优惠商品列表中的商品标识拆分得到的多块数据中,首块数据对应的key_value对的key值。
然而在上述场景下,通常会将模板标识作为首块数据对应的key_value对的key值为,因此,其确定过程可以为:基于用户标识确定用户已领取的电子券,基于已领取的电子券,确定该电子券对应的电子券模板的模板标识。并将该模板标识作为首块数据对应的key_value对的key值。
步骤b,基于确定的key值,从缓存中读取首块数据对应的key_value对。基于读取的key_value对的value值的第一数据部分,确定首块数据,并将首块数据放入预定数据集合中。
以图3为例来说,假设当前确定的key值为key1,那么可以读取到图3中的第一个key_value对。之后可以基于读取的key_value对的value值的第一数据部分,确定首块数据,并将首块数据放入预定数据集合中。
如前述商品营销场景,基于读取的key_value对的value值的第一数据部分,可以确定数据1:SQID1SQID2 SQID3…SQIDi,之后可以将读取的数据1放入预定商品集合中。如,在执行完成该步骤之后,预定商品集合S={SQID1SQID2 SQID3…SQIDi}。
步骤c,基于读取的key_value对的value值的第二数据部分,确定多块数据中其它块数据,并将其它块数据放入预定数据集合中。
可以理解的是,当上述多块数据的数量为2时,那么在执行该步骤后,数据的读取过程结束。
而当上述多块数据的数量大于2时,该步骤具体可以为:
基于读取的key_value对的value值的第二数据部分,确定下一块数据对应的key_value对。基于下一块数据对应的key_value对的value值的第一数据部分,确定下一块数据,并将下一块数据放入预定数据集合中。判断下一块数据对应的key_value对的value值的第二数据部分是否为空,如果为空,则结束。否则读取下一块数据对应的key_value对的value值的第二数据部分。并重复执行上述确定、放入以及判断的步骤。
以前述n块数据为例来说,通过步骤b,已经读取了数据1对应的key_value对,基于该key_value对的value值的第二数据部分,就可以确定数据2对应的key_value对的key值,从而基于该key值,可以读取到数据2对应的key_value对。之后基于数据2对应的key_value对的value值的第一数据部分,可以确定数据2:SQIDi+1SQIDi+2 SQID i+3…SQIDj,之后可以将确定的数据2放入预定商品集合中。从而,预定商品集合S={SQID1SQID2 SQID3…SQIDi SQIDi+1SQIDi+2 SQID i+3…SQIDj}。由于数据2对应的key_value对的value值的第二数据部分不为空,因此,重复执行上述各步骤,直至预定商品集合S={SQID1SQID2SQID3…SQIDi SQIDi+1SQIDi+2 SQID i+3…SQIDj…SQIDmSQIDm+1 SQID m+2…SQIDN},简写为:S={SQID1SQID2 SQID3...SQIDN}。或者,也可以说,直至数据n对应的key_value对的value值的第二数据部分为空。
在一个例子中,本说明书提供的大数量数据的读取方法可以如图4所示。图4中,可以基于数据1对应的key_value对的key1,首先读取到数据1。之后,再基于数据1对应的key_value对的第二数据部分,确定数据2对应的key_value对的key2,并基于key2,读取到数据2;以此类推,直至读取到数据n。从图4可以看出,本说明书的读取方法是按照从前往后的顺序来读取各块数据的。
图5为本说明书一个实施例提供的大数据量数据的读取方法流程图。所述方法的执行主图可以为具有处理能力的设备:服务器或者系统或者装置,如,可以为图1中的交易系统。如图5所示,所述方法具体可以包括:
步骤502,接收数据访问请求。
步骤504,基于接收的数据访问请求,确定按序排列的多块数据中首块数据对应的key_value对的key值。
该多块数据基于待读取的大数据量数据划分得到。此外,对于多块数据中任意的第一数据,第一数据与缓存中的第一key_value对相对应,第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识第一key_value对。第一value值包括第一数据部分和第二数据部分,第一数据部分为第一数据本身,第二数据部分为第二数据对应的第二key_value对的第二key值。第二数据与第一数据相邻,且第二数据的排列次序位于第一数据之后。
步骤506,基于确定的key值,从缓存中读取首块数据对应的key_value对。
步骤508,基于读取的所key_value对的value值的第一数据部分,确定首块数据,并将首块数据放入预定数据集合中。
步骤510,基于读取的key_value对的value值的第二数据部分,确定多块数据中其它块数据,并将其它块数据放入预定数据集合中。
这里,关于步骤510的详细表述可参见步骤c,在此不复赘述。
总之,本说明书实施例提供的大数据量数据的读取方法,由于是分多次来读取与大数据量数据对应的各块数据,由此可以大大降低数据的单次读取耗时,从而可以大大提升大数据量数据读取的成功率。
与上述大数据量数据的写入方法对应地,本说明书一个实施例还提供的一种大数据量数据的写入装置,如图6所示,该装置可以包括:
获取单元602,用于获取待写入数据。
这里的待写入数据可以为若干优惠商品的商品标识。
拆分单元604,用于按照预定块大小,对获取单元602获取的待写入数据进行拆分,得到按序排列的多块数据。
拆分单元604具体可以用于:
判断待写入数据的大小是否大于阈值。
如果否,则直接将待写入数据写入缓存中。
如果是,则按照预定块大小,对待写入数据进行拆分。
写入单元606,用于从最后一块数据开始,按照从后往前的顺序,依次将拆分单元604拆分得到的多块数据以键值key_value对的形式写入缓存中。
对于多块数据中任意的第一数据,该第一数据对应的第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识第一key_value对。第一value值包括第一数据部分和第二数据部分,第一数据部分为第一数据本身,第二数据部分为第二数据对应的第二key_value对的第二key值。第二数据与第一数据相邻,且第二数据的排列次序位于第一数据之后。
这里的第一数据可以为若干优惠商品中部分商品的商品标识。
需要说明的是,上述多块数据各自对应的key_value对在缓存中通过链表的形式相互串联。
可选地,该装置还可以包括:
存储单元608,用于当多块数据全部写入缓存中时,存储多块数据中首块数据对应的key_value对的key值。
可选地,该装置还可以包括:读取单元610以及确定单元612。
获取单元602,还用于获取多块数据中首块数据对应的key_value对的key值。
读取单元610,用于基于获取单元602获取的key值,从缓存中读取首块数据对应的key_value对。
确定单元612,用于基于读取单元610读取的key_value对的value值的第一数据部分,确定首块数据,并将首块数据放入预定数据集合中。
确定单元612,还用于基于读取单元610读取的key_value对的value值的第二数据部分,确定多块数据中其它块数据,并将其它块数据放入预定数据集合中。
确定单元612具体可以用于:
基于读取的key_value对的value值的第二数据部分,确定下一块数据对应的key_value对。
基于下一块数据对应的key_value对的value值的第一数据部分,确定下一块数据,并将下一块数据放入预定数据集合中。
判断下一块数据对应的key_value对的value值的第二数据部分是否为空,如果为空,则结束。否则读取下一块数据对应的key_value对的value值的第二数据部分,并重复执行上述确定、放入以及判断的步骤。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的大数据量数据的写入装置,获取单元602获取待写入数据。拆分单元604按照预定块大小,对获待写入数据进行拆分,得到按序排列的多块数据。写入单元606从最后一块数据开始,按照从后往前的顺序,依次将多块数据以键值key_value对的形式写入缓存中。由此,可以大大提升大数据量数据写入的成功率。
本说明书一个实施例提供的大数据量数据的写入装置可以为图1中交易系统的一个模块或者单元。
与上述大数据量数据的读取方法对应地,本说明书一个实施例还提供的一种大数据量数据的读取装置,如图7所示,该装置可以包括:
接收单元702,用于接收数据访问请求。
确定单元704,用于基于接收单元702接收的数据访问请求,确定按序排列的多块数据中首块数据对应的key_value对的key值,该多块数据基于待读取的大数据量数据划分得到。
对于多块数据中任意的第一数据,第一数据与缓存中的第一key_value对相对应,第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识第一key_value对。第一value值包括第一数据部分和第二数据部分,第一数据部分为第一数据本身,第二数据部分为第二数据对应的第二key_value对的第二key值。第二数据与第一数据相邻,且第二数据的排列次序位于第一数据之后。
读取单元706,用于基于确定单元704确定的key值,从缓存中读取首块数据对应的key_value对。
确定单元704,还用于基于读取单元706读取的key_value对的value值的第一数据部分,确定首块数据,并将首块数据放入预定数据集合中。
确定单元704,还用于基于读取单元706读取的key_value对的value值的第二数据部分,确定多块数据中其它块数据,并将其它块数据放入预定数据集合中。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的大数据量数据的读取装置,可以大大提升大数据量数据读取的成功率。
本说明书一个实施例提供的大数据量数据的读取装置可以为图1中交易系统的一个模块或者单元。
与上述大数据量数据的写入方法对应地,本说明书实施例还提供了一种大数据量数据的写入设备,如图8所示,该设备可以包括:存储器802、一个或多个处理器804以及一个或多个程序。其中,该一个或多个程序存储在存储器802中,并且被配置成由一个或多个处理器804执行,该程序被处理器804执行时实现以下步骤:
获取待写入数据。
按照预定块大小,对待写入数据进行拆分,得到按序排列的多块数据。
从最后一块数据开始,按照从后往前的顺序,依次将多块数据以键值key_value对的形式写入缓存中。
对于多块数据中任意的第一数据,第一数据对应的第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识第一key_value对。第一value值包括第一数据部分和第二数据部分,第一数据部分为第一数据本身,第二数据部分为第二数据对应的第二key_value对的第二key值。第二数据与第一数据相邻,且第二数据的排列次序位于第一数据之后。
本说明书一个实施例提供的大数据量数据的写入设备,可以大大提升大数据量数据写入的成功率。
需要说明的是,图8所示的大数据量数据的写入设备也同样适用于大数据量数据的读取设备,即该读取设备可以包括:存储器802、一个或多个处理器804以及一个或多个程序。其中,该一个或多个程序存储在存储器802中,并且被配置成由一个或多个处理器804执行。所不同的是,该程序被处理器804执行时实现以下步骤:
接收数据访问请求,并基于接收的数据访问请求,确定按序排列的多块数据中首块数据对应的key_value对的key值。该多块数据基于待读取的大数据量数据划分得到。
对于多块数据中任意的第一数据,第一数据与缓存中的第一key_value对相对应,第一key_value对包括第一key值和第一value值,其中,第一key值用于唯一地标识第一key_value对。第一value值包括第一数据部分和第二数据部分,第一数据部分为第一数据本身,第二数据部分为第二数据对应的第二key_value对的第二key值。第二数据与第一数据相邻,且第二数据的排列次序位于第一数据之后。
基于确定的key值,从缓存中读取首块数据对应的key_value对。
基于读取的key_value对的value值的第一数据部分,确定首块数据,并将首块数据放入预定数据集合中。
基于读取的key_value对的value值的第二数据部分,确定多块数据中其它块数据,并将其它块数据放入预定数据集合中。
本说明书一个实施例提供的大数据量数据的读取设备,可以大大提升大数据量数据读取的成功率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。