1.本技术属于数据处理技术领域,尤其涉及数据存储方法、装置、终端设备及计算机可读存储介质。
背景技术:2.dna存储技术,是一项利用人工合成的脱氧核糖核酸(deoxyribonucleic acid,dna)作为存储介质来存储文本、图片、音频等数据的存储技术。其具有存储量大、存储时效长、存储效率高、以及便于维护等优点。
3.现有的dna存储方法,首先通过编码算法将待存储信息编码为包含碱基字符的编码字符串,然后通过dna合成技术将编码字符串合成为碱基序列,对合成后的碱基序列进行存储。由于dna合成过程的耗时较长、成本较高,大大降低了数据存储效率、增加了数据存储成本。
技术实现要素:4.本技术实施例提供了一种数据存储方法、装置、终端设备及计算机可读存储介质,可以有效提高数据存储效率、降低数据存储成本。
5.第一方面,本技术实施例提供了一种数据存储方法,包括:
6.将待存储数据转换为预设格式的第一目标数据;
7.按照预设的编码位数,将所述第一目标数据划分为多个第一数据片段;
8.从预设的第一集合中,获取与每个第一数据片段对应的第一碱基片段,所述第一集合包括对参考碱基序列酶切得到的多个第一碱基片段,每个第一碱基片段对应一组编码码值,其中,每组编码码值的位数等于所述编码位数、且所述编码码值的格式为所述预设格式;
9.按照多个第一数据片段的划分顺序,将获取到的多个第一碱基片段拼接,得到存储有所有待存储数据的目标碱基序列;
10.存储所述目标碱基序列。
11.本技术实施例中,每个数据片段包含了待存储数据中的部分信息,每个数据片段用一个碱基片段代替,相当于每个碱基片段表示了待存储数据中的部分信息;由于碱基片段是通过对参考碱基序列酶切获得的,相当于利用现有的碱基片段表示待存储数据中的部分信息;对划分出的多个数据片段各自对应的碱基片段进行拼接,获得目标碱基序列,该目标碱基序列可以表示待存储数据的全部信息。通过上述方法,相当于利用现有的碱基片段进行拼接,获得用于表示待存储数据的全部信息的目标碱基序列,该过程中,绕开了dna合成处理的步骤,有效提高了数据存储效率,降低了数据存储成本。
12.在第一方面的一种可能的实现方式中,在从预设的第一集合中,获取与每个第一数据片段对应的第一碱基片段之前,所述方法还包括:
13.基于预设的内切酶对所述参考碱基序列酶切,得到所述第一集合;
14.对所述第一集合中的第一碱基片段编码,得到所述第一集合中的每个第一碱基片段对应的编码码值。
15.在第一方面的一种可能的实现方式中,所述基于预设的内切酶对所述参考碱基序列酶切,得到所述第一集合,包括:
16.所述基于预设的内切酶对所述参考碱基序列酶切,得到第二集合,所述第二集合包括多个第一碱基片段;
17.删除所述第二集合中的第一目标片段,得到第三集合,所述第一目标片段存在一端未经过酶切的所述第一碱基序列;
18.对所述第三集合中包含的所述第一碱基片段进行去重处理,得到所述第一集合。
19.在第一方面的一种可能的实现方式中,所述对所述第三集合中包含的所述第一碱基片段进行去重处理,得到所述第一集合,包括:
20.对所述第三集合中包含的所述第一碱基片段进行去重处理,得到第四集合;
21.根据所述第四集合中包含的所述第一碱基片段的数量确定所述编码位数;
22.根据所述编码位数确定编码组数;
23.从所述第四集合中选取n个所述第一碱基片段,得到所述第一集合,其中,所述n等于所述编码组数。
24.在第一方面的一种可能的实现方式中,所述对所述第一集合中的第一碱基片段编码,得到所述第一集合中的每个第一碱基片段对应的编码码值,包括:
25.计算所述第一集合中第一类型的碱基和第二类型的碱基的数量比值;
26.若所述数量比值不符合预设比值,则根据第五集合的碱基片段对所述第一集合中的碱基片段进行替换,直至替换后的所述第一集合中所述第一类型的碱基和所述第二类型的碱基的数量比值符合所述预设比值,所述第五集合包括所述第四集合中不属于所述第一集合的碱基片段;
27.为替换后的所述第一集合中的每个第一碱基片段分配符合所述编码位数的编码码值。
28.在第一方面的一种可能的实现方式中,在存储所述目标碱基序列之后,所述方法还包括:
29.基于所述内切酶对所述目标碱基序列酶切,获得多个第二碱基片段;
30.获取每个第二碱基片段对应的第二数据片段;
31.按照多个第二碱基片段的酶切顺序,将获取到的多个第二数据片段拼接为第二目标数据;
32.将所述第二目标数据转换为所述待存储数据。
33.第二方面,本技术实施例提供了一种数据存储装置,包括:
34.数据转换单元,用于将待存储数据转换为预设格式的第一目标数据;
35.数据划分单元,用于按照预设的编码位数,将所述第一目标数据划分为多个第一数据片段;
36.片段获取单元,用于从预设的第一集合中,获取与每个第一数据片段对应的第一碱基片段,所述第一集合包括对参考碱基序列酶切得到的多个第一碱基片段,每个第一碱基片段对应一组编码码值,其中,每组编码码值的位数等于所述编码位数、且所述编码码值
等仅用于区分描述,而不能理解为指示或暗示相对重要性。
53.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
54.现有的dna存储方法,首先通过编码算法将待存储信息编码为包含碱基字符的编码字符串,然后通过dna合成技术将编码字符串合成为碱基序列,对合成后的碱基序列进行存储。由于dna合成过程的耗时较长、成本较高,大大降低了数据存储效率、增加了数据存储成本。
55.由上述问题可知,若能够绕过dna合成的过程,将大大提高数据存储效率。为了解决该问题,在本技术实施例方法中,用天然序列中的碱基片段表示待存储数据的部分信息,将多个碱基片段拼接后得到的目标碱基序列可以表示待存储数据的全部信息,上述过程,利用现有的碱基片段进行拼接,从而绕过了dna合成的过程,进而提高了数据存储效率。
56.在接收数据存储过程之前,先介绍准备过程。参见图1,是本技术实施例提供的数据存储预处理的方法流程示意图。
57.s101,基于预设的内切酶对参考碱基序列酶切,得到第一集合。
58.第一集合包括对参考碱基序列酶切得到的多个第一碱基片段,每个第一碱基片段对应一组编码码值,每组编码码值的位数等于预设的编码位数、且编码码值的格式为预设格式。
59.由多个碱基按照一定顺序组成的序列为碱基序列,其实质是一段核酸片段。生物体中常见的碱基有腺嘌呤a、鸟嘌呤g、胞嘧啶c、胸腺嘧啶t和尿嘧啶u。其中,碱基a、g、c和t存在于dna中,而a、g、c和u存在于核糖核酸(ribonucleic acid,rna)中。碱基序列可以为dna序列,也可以为rna序列。dna为双链结构、属于遗传物质(即携带生物体的遗传信息),rna为单链结构、属于非遗传物质。
60.本技术实施例中,优选的,参考碱基序列采用dna序列。可选的,参考碱基序列可以采用天然的dna序列,如酵母基因组、大肠杆菌基因组、水稻基因组或某条染色体等;参考碱基序列也可以是人工合成的碱基序列。
61.酶切是对粘末端的dna分子和载体分子进行切割的技术。定向酶切就是用限制性内切酶去切割dna片段的方法。由于酶具有专一性,一种酶只能识别一种特定的脱氧核苷酸序列,所以可以用特定的酶去切割相应的dna片段,能够达到定向切割的目的。
62.本技术实施例中,可以选择任意一种常用的内切酶对参考碱基序列进行酶切。当内切酶的种类确定后,相应的,酶切位点也随之确定。例如:dna片段中的一条链为cccttaaatccttaacccc,一种内切酶可以识别ttaa(即酶切位点为ttaa),则利用该内切酶对dna片段酶切后可以得到cccttaa、atccttaa和cccc三段序列片段。
63.实际应用中,对参考碱基序列酶切后得到的多个碱基片段中,可能包括重复的碱基片段。如果对重复的碱基片段进行编码,将会增加编码开销。另外,位于参考碱基序列首尾的两个第一碱基片段,各自有一端未经过酶切,未经过酶切的一端无法与其他碱基片段配对,因此,在后续数据存储方法的拼接步骤中,可能存在无法拼接成目标碱基序列的情
况。为了解决上述问题,在一个实施例中,s101的一种实现方法包括:
64.基于预设的内切酶对参考碱基序列酶切,得到第二集合,第二集合包括多个第一碱基片段;删除第二集合中的第一目标片段,得到第三集合,第一目标片段存在一端未经过酶切的所述第一碱基序列;对第三集合中包含的第一碱基片段进行去重处理,得到第一集合。
65.通过上述方法,第一集合中不存在重复的碱基片段,节约了编码开销,且保证了每个碱基片段均可以与其他碱基片段配对。
66.进一步的,对第三集合中包含的第一碱基片段进行去重处理,得到第一集合的步骤包括:
67.对第三集合中包含的第一碱基片段进行去重处理,得到第四集合;根据第四集合中包含的第一碱基片段的数量确定编码位数;根据编码位数确定编码组数;从第四集合中选取n个第一碱基片段,得到第一集合,其中,n等于编码组数。
68.根据信息论可知,在n个事件发生概率相等的情况下,则其中每一个事件包含的信息量为m:m=log2n。据此,令n等于第四集合中包含的第一碱基片段的片段数量,利用上式即可计算得到编码位数m。换言之,每个碱基片段中包含m比特的信息。
69.上式公式计算出的结果m可能不是整数。为了便于计算,可选的,可以对计算出的m进行取整运算。为了保存更完整的信息,优选的,对上式计算出的m进行向上取整。
70.本技术实施例中的码值可以为二进制字符和八进制字符等。当编码位数确定后,相应的,所需的码值的组数也随之确定。例如,假设码值为二进制字符,当编码位数为2,则所需的码值的组数为4,码值分别为00、01、10和11;当编码位数为3,则所需的码值的组数为8,码值分别为000、001、010、011、100、101、110和111。
71.由于第四集合中包含的第一碱基片段的数量可能大于所需编码码值的编码组数,因此,从第四集合中选取n(编码组数)个第一碱基片段进行编码即可,选取的这n个第一碱基片段组成第一集合。无需对第四集合中所有的第一碱基片段进行编码,有利于节约编码开销。
72.可选的,可以从第四集合中随机选取n个第一碱基片段。
73.可选的,选取的过程可以包括:按照预设规则对第四集合中的第一碱基片段进行排序,得到排序队列;将排序队列中前n个第一碱基片段。其中,预设规则可以根据实际需要人为设定。
74.例如,可以按照各个第一碱基片段在参考碱基序列中的位置的顺序排列。再例如,还可以按照碱基片段中各个碱基位置上的碱基类型的先后顺序排序。示例性的,先根据第一碱基片段的第一位置上的碱基类型排序,如按照a、t、c、g的顺序;若某几个第一碱基片段的第一位置上的碱基类型相同,则根据该几个第二碱基片段的第二位置上的碱基类型排序,依次类推。
75.s102,对第一集合中的第一碱基片段编码,得到第一集合中的每个第一碱基片段对应的编码码值。
76.由上述s101步骤,确定了编码组数n和编码位数m,并从第四集合中获取了包含n个第一碱基片段的第一集合。编码的一种实现方式为:生成n组符合编码位数m的编码码值;将n组编码码值分别与第一集合中的n个第一碱基片段一一对应。
77.实际应用中,第一集合中可能某种类型的碱基的数量较多,而其他类型的碱基的数量较少,导致信息不平衡。为了解决上述问题,在一个实施例中,s102的一种实现方式包括:
78.计算第一集合中第一类型的碱基和第二类型的碱基的数量比值;
79.若数量比值不符合预设比值,则根据第五集合的碱基片段对第一集合中的碱基片段进行替换,直至替换后的所述第一集合中所述第一类型的碱基和所述第二类型的碱基的数量比值符合所述预设比值,所述第五集合包括所述第四集合中不属于所述第一集合的碱基片段;
80.为替换后的所述第一集合中的每个第一碱基片段分配符合所述编码位数的编码码值。
81.第一类型和第二类型表示不同的碱基类型,如g和c为不同的碱基类型。
82.当然,由于替换后的第一集合中的第一碱基片段的顺序可能被打乱,还可以对替换后的第一集合中的第一碱基片段重新排序后,再为排序后的第一集合中的每个第一碱基片段分配码值。
83.示例性的,假设码值为二进制字符,编码位数为2,第一集合中包括的4个第一序列片段,排列顺序依次为cccttaa、atccttaa、ccccgat和gtacctcg。那么,为cccttaa分配的码值为00,为atccttaa分配的码值为01,为ccccgat分配的码值为10,为gtacctcg分配的码值为11。
84.需要说明的是,上述只是分配码值的示例。本技术实施例中,不对编码的顺序做具体限定,不对编码码值和第一碱基片段的对应规则做具体限定,只需保证每组编码码值对应一个第一碱基片段,且不同组的编码码值对应不同的第一碱基片段即可。
85.基于上述预处理的过程,可以获得第一集合,第一集合中的每个第一碱基序列对应一组编码码值。利用第一碱基序列与编码码值的对应关系,可以实现以下数据存储方法。可选的,第一集合、以及第一集合中每个第一碱基片段对应的编码码值可以存储在预设数据库中,以供后续数据存储时调取使用。
86.参见图2,是本技术实施例提供的数据存储方法的流程示意图,作为示例而非限定,所述方法可以包括以下步骤:
87.s201,将待存储数据转换为预设格式的第一目标数据。
88.本技术实施例中的待存储数据可以为图像、文本、音频等数据。
89.其中,预设格式与编码码值的数据格式相同。例如,当编码码值为二进制字符时,第一目标数据为二进制字符串。当编码码值为八进制字符时,第一目标数据为八进制字符串。
90.由于处理器/计算机中通常采用二进制的机器语言,因此,本技术实施例中,优选的,将第一碱基片段编码为二进制字符,相应的,将待存储数据转换为二进制字符,这样可以省却再次数据转换的过程,节约数据存储的时间。
91.s202,按照预设的编码位数,将第一目标数据划分为多个第一数据片段。
92.划分后的每个第一数据片段中包括m个字符。
93.实际应用中,可能存在以下情况:将第一目标数据划分为多个数据片段,其中,最后一个数据片段中包含的字符的个数小于m。对于该情况,可选的,一种实现方式为:在最后
一个数据片段后边补l个0,l等m与最后一个数据片段中包含字符的个数的差值。
94.例如,第一目标数据为000011110110,m=5,划分后的多个数据片段依次为00001、11101、10。其中,最后一个数据片段为10,包含的字符个数为2(小于m),在最后一个数据片段后边补3(m-2)个0,得到补0后的数据片段为10000。s203,从预设的第一集合中,获取与每个第一数据片段对应的第一碱基片段。
95.如图1实施例中所述,该步骤中,可以从预设数据库中调取预存储的第一集合以及第一集合中每个第一碱基片段对应的编码码值。由于每个数据片段的数据格式与编码码值相同,且数据片段的字符个数等于每组编码码值的编码位数,相当于每个数据片段相当于一组编码码值。
96.示例性的,假设待存储数据转换后的第一目标数据为00001111011011,m=2。则划分后的多组数据依次为:00、00、11、11、01、10和11。假设根据图1实施例中的预处理方法得到的第一碱基片段和编码码值的对应关系为:cccttaa对应的码值为00,atccttaa对应的码值为01,ccccgat对应的码值为10,gtacctcg对应的码值为11。则多个数据片段各自对应的第一碱基片段依次为:cccttaa、cccttaa、gtacctcg、gtacctcg、atccttaa、ccccgat和gtacctcg。
97.s204,按照多个第一数据片段的划分顺序,将获取到的多个第一碱基片段拼接,得到存储有所有待存储数据的目标碱基序列。
98.继续s203中的示例,多个数据片段各自对应的第一碱基片段依次为:cccttaa、cccttaa、gtacctcg、gtacctcg、atccttaa、ccccgat和gtacctcg。将多个数据片段各自对应的第一碱基片段拼接为目标碱基序列为:cccttaacccttaagtacctcggtacctcgatccttaaccccgatgtacctcg。
99.s205,存储目标碱基序列。
100.目标碱基序列可以与第一集合和编码码值存储在同一数据库中,也可以分开存储。
101.上述步骤s204-s205为存储数据的过程。下面介绍调用数据的过程,即根据存储的目标碱基序列获取存储之前的待存储数据的过程。在一个实施例中,所述方法还包括:
102.基于内切酶对所述目标碱基序列酶切,获得多个第二碱基片段;获取每个第二碱基片段对应的第二数据片段;按照多个第二碱基片段的酶切顺序,将获取到的多个第二数据片段拼接为第二目标数据;将第二目标数据转换为待存储数据。
103.本技术实施例中,酶切目标碱基序列所使用的内切酶与酶切参考碱基序列的内切酶一致,这样才可以保证第一碱基片段和第二碱基片段的类型、数据均相同。
104.继续s204中的示例,根据s201-s205中的方法存储的目标碱基序列为:cccttaacccttaagtacctcggtacctcgatccttaaccccgatgtacctcg。将该目标碱基序列酶切,得到的多个第二碱基片段依次为:cccttaa、cccttaa、gtacctcg、gtacctcg、atccttaa、ccccgat和gtacctcg。根据多个第二碱基片段各自对应的第一碱基片段、以及第一集合中的第一碱基片段与编码码值的对应关系,确定多个第二碱基片段各自对应的编码码值依次为:00、00、11、11、01、10和11。将多个第二碱基片段各自对应的编码码值拼接为第二目标数据为00001111011011,再将第二目标数据转换为存储之前的待存储数据。
105.如s204中所述,若在存储数据的过程中,对第一目标数据划分后的多组数据进行
了补0操作,相应的,调用数据的过程还包括以下步骤:在确定出多个第二碱基片段各自对应的码值后,删除最后一组编码码值中的补0,再将删除后的编码码值与其他编码码值拼接为第二目标数据。
106.示例性的,假设多个第二碱基片段各自对应的码值依次为00001、11101和10000,最后一组编码码值补3个0,删除最后一组编码码值中的补0得到10。将删除后的编码码值与其他两组编码码值拼接为第二目标数据为000011110110。
107.参见图3,是本技术实施例提供的编码过程的示意图。如图3所示,s301中展示的天然dna序列为参考碱基序列;利用内切酶对天然dna序列酶切,得到多个第一序列片段(如s302所示);去掉位于天然dna序列首尾的两个第一碱基片段,并去重、排序后,得到包含n个第一碱基片段的第一集合(如s303所示);根据n确定编码位数m;为第一集合中的第一碱基片段分配码值,得到第一碱基片段和编码码值的对应关系(如s304所示)。获取待存储信息(如s305所示);对待存储信息转换为二进制字符串(如s306所示);然后根据第一碱基片段和编码码值的对应关系将待存储信息转换后的二进制字符串转换为目标碱基序列(如s307所示的编码后序列)。
108.本技术实施例中,每个数据片段包含了待存储数据中的部分信息,每个数据片段用一个碱基片段代替,相当于每个碱基片段表示了待存储数据中的部分信息;由于碱基片段是通过对参考碱基序列酶切获得的,相当于利用现有的碱基片段表示待存储数据中的部分信息;对划分出的多个数据片段各自对应的碱基片段进行拼接,获得目标碱基序列,该目标碱基序列可以表示待存储数据的全部信息。通过上述方法,相当于利用现有的碱基片段进行拼接,获得用于表示待存储数据的全部信息的目标碱基序列,该过程中,绕开了dna合成处理的步骤,有效提高了数据存储效率,降低了数据存储成本。
109.本技术实施例中,在编码过程中,根据去重处理后的碱基片段的数量确定编码位数,再根据编码位数确定编码组数,避免了对所有碱基片段进行编码,有效节约了编码开销。
110.本技术实施例中,可以预先获取第一集合以及第一集合中每个碱基片段对应的编码码值,对这些数据预先存储,当进行数据存储时直接调用,可以大大提高数据存储的效率,令数据存储的大规模应用成为可能。
111.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
112.对应于上文实施例所述的数据存储方法,图4是本技术实施例提供的数据存储装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
113.参照图4,该装置包括:
114.数据转换单元41,用于将待存储数据转换为预设格式的第一目标数据。
115.数据划分单元42,用于按照预设的编码位数,将所述第一目标数据划分为多个第一数据片段。
116.片段获取单元43,用于从预设的第一集合中,获取与每个第一数据片段对应的第一碱基片段,所述第一集合包括对参考碱基序列酶切得到的多个第一碱基片段,每个第一碱基片段对应一组编码码值,其中,每组编码码值的位数等于所述编码位数、且所述编码码
值的格式为所述预设格式。
117.片段拼接单元44,用于按照多个第一数据片段的划分顺序,将获取到的多个第一碱基片段拼接,得到存储有所有待存储数据的目标碱基序列。
118.信息存储单元45,用于存储所述目标碱基序列。
119.可选的,装置4还包括:
120.碱基酶切单元46,用于基于预设的内切酶对所述参考碱基序列酶切,得到所述第一集合。
121.片段编码单元47,用于对所述第一集合中的第一碱基片段编码,得到所述第一集合中的每个第一碱基片段对应的编码码值。
122.可选的,碱基酶切单元46还用于:
123.所述基于预设的内切酶对所述参考碱基序列酶切,得到第二集合,所述第二集合包括多个第一碱基片段;
124.删除所述第二集合中的第一目标片段,得到第三集合,所述第一目标片段为存在一端未经过酶切的所述第一碱基序列;
125.对所述第三集合中包含的所述第一碱基片段进行去重处理,得到所述第一集合。
126.可选的,碱基酶切单元46还用于:
127.对所述第三集合中包含的所述第一碱基片段进行去重处理,得到第四集合;
128.根据所述第四集合中包含的所述第一碱基片段的数量确定所述编码位数;
129.根据所述编码位数确定编码组数;
130.从所述第四集合中选取n个所述第一碱基片段,得到所述第一集合,其中,所述n等于所述编码组数。
131.可选的,片段编码单元47还用于:
132.计算所述第一集合中第一类型的碱基和第二类型的碱基的数量比值;
133.若所述数量比值不符合预设比值,则根据第五集合的碱基片段对所述第一集合中的碱基片段进行替换,直至替换后的所述第一集合中所述第一类型的碱基和所述第二类型的碱基的数量比值符合所述预设比值,所述第五集合包括所述第四集合中不属于所述第一集合的碱基片段;
134.为替换后的所述第一集合中的每个第一碱基片段分配符合所述编码位数的编码码值。
135.可选的,装置4还包括:
136.数据调用单元48,用于基于所述内切酶对所述目标碱基序列酶切,获得多个第二碱基片段;获取每个第二碱基片段对应的第二数据片段;按照多个第二碱基片段的酶切顺序,将获取到的多个第二数据片段拼接为第二目标数据;将所述第二目标数据转换为所述待存储数据。
137.需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
138.另外,图4所示的数据存储装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立
的终端设备存在。
139.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
140.图5是本技术实施例提供的终端设备的结构示意图。如图5所示,该实施例的终端设备5包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个数据存储方法实施例中的步骤。
141.所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图5仅仅是终端设备5的举例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
142.所称处理器50可以是中央处理单元(central processing unit,cpu),该处理器50还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
143.所述存储器51在一些实施例中可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51在另一些实施例中也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(boot loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
144.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
145.本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
146.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个
方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
147.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
148.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
149.在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
150.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
151.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。