CN111159438B - 一种数据的存储和检索方法、电子设备及存储介质 - Google Patents
一种数据的存储和检索方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111159438B CN111159438B CN201811323660.8A CN201811323660A CN111159438B CN 111159438 B CN111159438 B CN 111159438B CN 201811323660 A CN201811323660 A CN 201811323660A CN 111159438 B CN111159438 B CN 111159438B
- Authority
- CN
- China
- Prior art keywords
- data
- current
- storage area
- index
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 604
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000012545 processing Methods 0.000 claims description 63
- 230000008569 process Effects 0.000 claims description 19
- 238000011084 recovery Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据的存储和检索方法、电子设备及存储介质,其中,该数据的存储方法包括:获得当前待存储数据的数据量及描述信息,选择当前数据存储区,并为当前待存储数据分配当前存储块,获得当前存储块的位置信息,将当前存储块的位置信息存储至三级索引区中,从二级索引区中,获取当前数据存储区的位置信息,根据当前存储块的位置信息及当前数据存储区的位置信息生成一级索引,将一级索引及当前待存储数据的描述信息,对应存储至一级索引区中,将当前待存储数据存储至当前存储块中。可以针对不同类型的数据,采用相同的存储方式存储数据,降低开发人员的工作量,降低在采用该存储方式的存储介质中进行检索的时间开销,提高检索效率。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种数据的存储和检索方法、电子设备及存储介质。
背景技术
随着信息技术的发展,有越来越多的不同应用产生的大量应用数据需要存储到存储介质中。目前,将数据存储到存储介质中的方法,通常是预先按照数据内容预先建立多级索引,例如,按照图片的事件编码、图片的通道号和二级索引文件地址建立一级索引,按照图片的最早时间、最晚时间和三级索引的地址建立二级索引,按照图片的长度、图片的拍摄时间和图片数据包地址建立三级索引。然后将图片存储到图片数据包中。
在检索图片时,需要首先根据图片的事件编码和图片的通道号,在一级索引中检索与图片的事件编码、图片的通道号匹配的二级索引文件地址,在与二级索引文件地址对应的二级索引中,检索与图片的最早时间和最晚时间匹配的三级索引文件地址,在与三级索引文件地址对应的三级索引中,确定图片数据包的地址,最后从该图片数据包的地址中读取图片。
上述的存储和检索方法,仅仅是用于图片数据,如果要在该存储介质中存储不同类型的数据,例如文本数据,开发人员需要根据上述方法,编写不同的索引接口,增加了开发人员的工作量。
并且,由于该方法在存储图片时,需要针对该图片,建立三个级别的索引,当检索图片时,需要依次在该三个级别的索引中进行检索,才能确定该图片的位置。增加检索的时间开销,降低检索效率。
发明内容
本发明实施例的目的在于提供一种数据的存储和检索方法、电子设备及存储介质,以针对不同类型的数据,采用相同的存储方式存储数据,降低开发人员的工作量,并降低在存储介质中进行检索的时间开销,提高检索效率。具体技术方案如下:
第一方面,本发明实施例提供了一种数据的存储方法,用于存储数据的存储介质,该存储数据的存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
一级索引区用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置信息,及该数据存储区在存储介质中的存储位置信息;
二级索引区用于存储预设的每个数据存储区在存储介质中的存储位置信息;三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;
该方法包括:
获得当前待存储数据的数据量及当前待存储数据的描述信息;
从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块;
获得当前存储块在当前数据存储区的位置信息;
将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;
从二级索引区中,获取当前数据存储区在存储介质的位置信息;
根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引;
将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中;
将当前待存储数据存储至当前存储块中。
第二方面,本发明还实施例提供了一种数据的检索方法,用于存储数据的存储介质,该存储数据的存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
一级索引区用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在存储介质中的存储位置;
二级索引区用于存储预设的每个数据存储区在存储介质中的存储位置信息;三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;检索方法包括:
获得当前检索条件;
在一级索引区查询符合当前检索条件的目标数据的当前描述信息;
针对每个目标数据,获得与目标数据的当前描述信息对应的一级索引;
根据一级索引,从二级索引区获得目标数据所在的数据存储区在存储介质的位置,从三级索引区获得存储目标数据的存储块在数据存储区的位置;
按照目标数据所在数据存储区在存储介质的位置和存储目标数据的存储块在数据存储区的位置,读取目标数据。
第三方面,本发明实施例还提供了一种数据的存储方法,应用于存储数据的存储介质,存储数据的存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
一级索引区用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在存储介质中的存储位置;
二级索引区用于存储预设的每个数据存储区在存储介质中的存储位置信息;三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;
该方法包括:
获得当前待存储数据;
从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块;
将当前待存储数据存入当前存储块。
第四方面,本发明还实施例提供了一种电子设备,包括处理器、程序存储器和数据存储器;
程序存储器,用于存放计算机程序;
数据存储器,包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
一级索引区用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在存储介质中的存储位置;
二级索引区用于存储预设的每个数据存储区在存储介质中的存储位置信息;三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;
处理器,用于执行程序存储器上所存放的程序时,实现上述的数据的存储方法的步骤或上述的数据的检索方法的步骤。
第五方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现上述的数据的存储方法的步骤或上述的数据的检索方法的步骤。
本发明实施例提供的一种数据的存储和检索方法、电子设备及存储介质,在获得当前待存储数据的数据量及当前待存储数据的描述信息后,从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块,可以将当前待存储数据存储至该当前存储块中;通过获得当前存储块在当前数据存储区的位置信息,将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;从二级索引区中,获取当前数据存储区在存储介质的位置信息,根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引,将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中;从而可以使得在后续检索时,可以通过检索与待检索数据对应的描述信息,检索到与待检索数据对应的一级索引,进而可以确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置,进一步的,由于在一级索引区中存储有从当前待存储数据中获得的描述信息,该描述信息用于描述不同类型的数据。也就是说,描述信息是在存储过程中,从当前待存储数据中获得的,因此,不需要预先知道当前待存储数据的类型,也就不需要业务人员预先针对不同类型的数据,编写不同的索引接口,从而可以减少开发人员的工作量。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的存储介质的划分示意图;
图2为本发明实施例的一种数据的存储方法第一种实施方式的流程图;
图3为本发明实施例的一种数据的存储方法第二种实施方式的流程图;
图4为本发明实施例的一种数据的存储方法第三种实施方式的流程图;
图5为本发明实施例的一种数据的存储方法第四种实施方式的流程图;
图6为本发明实施例的一种数据的存储方法第五种实施方式的流程图;
图7为本发明实施例的一种数据的检索方法第一种实施方式的流程图;
图8为本发明实施例的一种数据的检索方法第二种实施方式的流程图;
图9为本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术存在的问题,本发明实施例提供了一种数据的存储和检索方法、电子设备及存储介质,以实现针对不同类型的数据,采用相同的存储方式存储数据,降低在采用该存储方式的存储介质中检索的时间开销,提高检索效率。
下面,首先对本发明实施例的一种数据的存储方法进行介绍,该方法中存储数据的存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
一级索引区用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置信息,及该数据存储区在存储介质中的存储位置信息;
在一些示例中,该一级索引,可以是包括已存储数据所在的存储块在数据存储区的存储位置信息,及该数据存储区在存储介质中的存储位置信息的索引,也就是说,该通过该一级索引,可以直接得到已存储数据所在的存储块在数据存储区的存储位置信息,及该数据存储区在存储介质中的存储位置信息;
在又一些示例中,该一级索引,可以是包括二级索引和三级索引的索引,该三级索引可以包括:已存储数据所在的存储块在数据存储区的存储位置信息,该二级索引可以包括该数据存储区在存储介质中的存储位置信息。也就是说,通过该一级索引,可以得到已存储数据对应的二级索引和三级索引,进而可以通过已存储数据对应的二级索引和三级索引,得到已存储数据所在的存储块在数据存储区的存储位置信息,及该数据存储区在存储介质中的存储位置信息。
二级索引区用于存储预设的每个数据存储区在存储介质中的存储位置信息;三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息。
为了更清楚的说明本发明实施例的一种数据的存储方法中,存储介质中的索引区和数据存储区,下面结合图1进行说明。如图1所示,为本发明实施例中的存储介质的划分示意图,在图1中,该存储介质可以划分为:一级索引区110、二级索引区120、多个三级索引区和与多个三级索引区一一对应的多个数据存储区130。其中,三级索引区1对应数据存储区1、三级索引区n对应数据存储区n。二级索引区120用于存储预设的数据存储区1至数据存储区n在存储介质中的存储位置信息。
具体的,如图2所示,为本发明实施例的一种数据的存储方法第一种实施方式的流程图,在图2中,该方法可以包括:
S210,获得当前待存储数据的数据量及当前待存储数据的描述信息。
在一些示例中,当与应用本发明实施例的一种数据的存储方法的电子设备连接的对端设备存在待存储数据时,可以首先将该待存储数据的数据量及当前待存储数据的描述信息,发送给应用本发明实施例的一种数据的存储方法的电子设备,应用本发明实施例的一种数据的存储方法的电子设备,可以获得的待存储数据的数据量作为当前待存储数据的数据量,将该待存储数据的描述信息作为前待存储数据的描述信息。
在又一些示例中,上述的对端设备还可以将待存储数据发送至上述的电子设备,上述的电子设备可以从该待存储数据中提取描述信息。该电子设备在获取到该待存储数据和该待存储数据的描述信息后,可以将该待存储数据作为当前待存储数据,上述的电子设备还可以在获得到该待存储数据后,获得该待存储数据的数据量。这都是可以的。
S220,基于当前待存储数据的数据量,从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块。
当上述的电子设备在获取到该当前待存储数据后,为了对该当前待存储数据进行存储,可以从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区。
在一些示例中,上述的电子设备可以随机从该多个数据存储区中,选择用于存储当前待存储数据的当前数据存储区。也可以按照预设的选择规则从该多个数据存储区中,选择用于存储当前待存储数据的当前数据存储区。这都是可以的。
上述的电子设备在选择得到当前数据存储区后,可以在该当前数据存储区中,为该当前待存储数据分配当前存储块。
具体的,上述的电子设备可以将该当前数据存储区中的一段地址分配给当前待存储数据,作为该当前待存储数据的当前存储块。
在一些示例中,该当前数据存储区可以是一个,也可以是多个,对应的,当前存储块也可以是一个,还可以是多个。这都是可以的。
在一些示例中,该多个数据存储区的最大容量可以相同,也可以不同。
S230,获得当前存储块在当前数据存储区的位置信息。
上述的电子设备在得到该当前待存储数据的当前存储块后,由于该电子设备是将该当前数据存储区中的一段地址分配给当前待存储数据,作为该当前待存储数据的当前存储块,因此,可以得到该当前存储块在当前数据存储区中的位置信息。
在一些示例中,该位置信息可以用该段地址的首地址和该段地址的长度来表示,也可以用该段地址的末位地址和该段地址的长度来表示,还可以用该段地址的首地址和末位地址来表示,这都是可以的。
在一些示例中,在当前存储块为多个时,该当前存储块在当前数据存储区的位置信息也可以是多个。
S240,将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中。
具体的,上述的电子设备可以将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中。从而使得在检索时,可以从该三级索引区中,获得到待检索的数据在当前数据存储区中的位置。
在其他实施例中,在得到当前存储块在当前数据存储区的位置信息后,为了在检索时,提高检索效率,可以对该位置信息建立索引。
S250,从二级索引区中,获取当前数据存储区在存储介质的位置信息。
具体的,由于二级索引区存储有预设的每个数据存储区在存储介质中的存储位置信息,因此,上述的电子设备可以从该二级索引区中,获取到当前数据存储区在存储介质的位置信息。
在一些示例中,在当前数据存储区为多个时,获得的当前存储区在存储介质中的位置信息也可以是多个。
在一些示例中,为了进一步提高检索效率,可以在该二级索引区中,预先为每个数据存储区在存储介质的位置信息建立索引。
S260,根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引。
进一步的,为了使得上述的电子设备在检索时,能够快速确定存储有待检索数据的数据存储区在存储介质中的位置,进而确定待检索数据在数据存储区中的位置,上述的电子设备,可以根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引。
例如,上述的电子设备可以将该当前存储块在当前数据存储区的位置信息,作为当前存储块在当前数据存储区的索引,并存储到三级索引区,还可以将当前数据存储区在存储介质的位置信息,作为当前数据存储区在存储介质的索引。然后可以依据当前存储块在当前数据存储区的索引和当前数据存储区在存储介质的索引,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引。
应当理解的是,这里仅仅是示例性的说明本发明实施例的一种数据的存储方法建立一级索引的过程,并非用于限定本发明实施例的一种数据的存储方法建立一级索引的过程。凡是基于当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,能够生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引的过程,都应当属于本发明实施例的保护范围。
通过生成该一级索引,可以使得电子设备在检索时,通过该一级索引,可以确定存储待检索数据的存储块在数据存储区的位置,以及该数据存储区在存储介质中的位置,从而可以提高检索的效率。
S270,将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中。
具体的,上述的电子设备在生成一级索引后,为了使得后续检索时,能够检索到与待检索数据对应的一级索引,可以将生成的一级索引及当前待存储数据的描述信息,对应存储到该一级索引区中。从而可以使得在后续检索时,可以通过检索与待检索数据对应的描述信息,检索到与待检索数据对应的一级索引,进而可以确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置。
在一些示例中,该描述信息可以包括当前待存储数据的数据类型、数据量、以及当前待存储数据的关键词等信息。
对比于现有技术,本发明实施例的一种数据存储方法,可以使得在后续检索时,不需要通过至少一个检索条件,检索二级索引文件地址,也不需要采用另外的至少一个检索条件,从二级索引文件中,检索三级索引文件地址,更不需要通过三级索引文件,确定检索的图片数据包的位置。而是通过一级索引,直接确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置。可以明显提高检索效率。
S280,将当前待存储数据存储至当前存储块中。
通过本发明实施例的一种数据的存储方法,在获得当前待存储数据的数据量及当前待存储数据的描述信息后,从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块,可以将当前待存储数据存储至该当前存储块中;通过获得当前存储块在当前数据存储区的位置信息,将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;从二级索引区中,获取当前数据存储区在存储介质的位置信息,根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引,将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中;从而可以使得在后续检索时,可以通过检索与待检索数据对应的描述信息,检索到与待检索数据对应的一级索引,进而可以确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置,进一步的,由于在一级索引区中存储有从当前待存储数据中获得的描述信息,该描述信息用于描述不同类型的数据。也就是说,描述信息是在存储过程中,从当前待存储数据中获得的,因此,不需要预先知道当前待存储数据的类型,也就不需要业务人员预先针对不同类型的数据,编写不同的索引接口,从而可以减少开发人员的工作量。
在一些示例中,二级索引区进一步用于存储标识每个数据存储区在存储介质的位置的索引;每个数据存储区在存储介质的位置的索引,为预先按预设第一数据处理算法,对每个数据存储区在存储介质中的存储位置信息进行数据处理获得的。
在一些示例中,为了提高检索时的检索速度,该二级索引区可以采用树形结构存储标识每个数据存储区在存储介质的位置的索引。
具体的,预先按预设第一数据处理算法,对每个数据存储区在存储介质中的存储位置信息进行数据处理,获得每个数据存储区的索引,可以包括:
采用哈希算法,对每个数据存储区在存储介质中的存储位置信息进行计算,获得每个数据存储区的索引。
通过采用哈希算法,可以将位数较长的存储位置信息,转换为固定长度的哈希值,并将该哈希值作为数据存储区的索引。
在一些示例中,还可以采用数组的方式,对每个数据存储区在存储介质中的存储位置信息进行转换,得到数据值,并将该数组值作为数据存储区的索引。
在图2所示的一种数据的存储方法的基础上,本发明实施例还提供了一种可能的实现方式,如图3所示,为本发明实施例的一种数据的存储方法第二种实施方式的流程图,包括如下步骤:
S210~S230,可以与图2步骤S210~S230完全相同,这里不再重复。
S290,按预设第一数据处理算法,对当前存储块在当前数据存储区的位置信息进行数据处理,获得当前存储块在当前数据存储区的索引。
具体的,为了降低三级索引区对存储介质的存储容量的占用,上述的电子设备可以对该当前数据存储区的位置信息进行处理,以得到比该当前数据存储区的位置信息位数更少的索引。
在一些示例中,按预设第一数据处理算法,对当前存储块在当前数据存储区的位置信息进行数据处理,可以通过以下方式,获得当前存储块在当前数据存储区的索引:
采用哈希算法,对当前存储块在当前数据存储区的位置信息进行计算,获得当前存储块在当前数据存储区的索引。
S241,将获得的当前存储块在当前数据存储区的索引,和当前存储块在当前数据存储区的位置信息对应存储至与当前数据存储区对应的三级索引区中。
具体的,上述的电子设备在得到当前存储块在当前数据存储区的索引后,为了使得在后续检索时,能够通过得到的当前存储块在当前数据存储区的索引,在三级索引区中,检索到该当前存储块的地址,可以将获得的当前存储块在当前数据存储区的索引,和当前存储块在当前数据存储区的位置信息对应存储至与当前数据存储区对应的三级索引区中。
在一些示例中,当采用当前存储块在当前数据存储区中的首地址信息和尾地址信息来表示该当前存储块的容量时,该当前存储块在当前数据存储区的位置信息为两个,可以针对该首地址信息和尾地址信息分别建立索引。也就是说,在当前存储块在当前数据存储区的位置信息为多个时,获得的当前存储块在当前数据存储区的索引也可以是多个。
该多个索引可以分别存储到对应的当前数据存储区的三级索引区中。
S251,从二级索引区中,获取当前数据存储区的索引及当前数据存储区在存储介质的位置信息。
S261,按预设第二数据处理算法,对当前存储块在当前数据存储区的索引和当前数据存储区的索引进行数据处理,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引。
在一些示例中,按预设第二数据处理算法,对当前存储块在当前数据存储区的索引和当前数据存储区的索引进行数据处理,可以通过以下方式,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引:
将当前存储块在当前数据存储区的索引和当前数据存储区的索引进行合并,获得合并后的索引数据,并将合并后的索引数据作为一级索引,该一级索引用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的存储位置。
S270~S280,可以与图2中步骤S270~S280完全相同,这里不再重复。
本实施例中,进一步在二级索引区中保存了预先建立的每个数据存储区在存储介质的位置的索引,并在获得当前存储块在当前数据存储区的位置信息后,建立了当前存储块在当前数据存储区的索引,并保存至三级索引区;然后采用简单的数据处理算法,用当前存储块在当前数据存储区的索引和当前数据存储区的索引计算出一级索引。
这样,可以使得在后续检索时,可以通过与待检索数据对应的一级索引,便可以确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置。从而可以减少后续检索时的时间开销,提高检索效率。
在图2所示的一种数据存储方法基础上,本发明实施例还提供了一种可能的实现方式,如图4所示,为本发明实施例的一种数据的存储方法第三种实施方式的流程图,包括:
S210,获得当前待存储数据的数据量及当前待存储数据的描述信息。
S221,从多个数据存储区中选择剩余存储量大于当前待存储数据的数据量的数据存储区为当前数据存储区。
S222,按照当前待存储数据的数据量,在当前数据存储区中分配大于或等于当前待存储数据的数据量的存储块,作为当前存储块。
为了为当前待存储数据分配当前存储块,本发明实施例还提供了一种可能的实现方式。
具体的,上述的电子设备可以在为当前待存储数据分配当前存储块时,可以获取当前待存储数据的数据量。然后在多个数据存储区中,选择剩余存储量大于当前待存储数据的数据量的数据存储区为当前数据存储区。
通过选择剩余存储量大于当前待存储数据的数据量的数据存储区为当前数据存储区,可以使得采用一个当前存储块,便可以存储该当前待存储数据。
上述的电子设备在得到当前数据存储区后,便可以在该当前数据存储区中,分配大于或等于当前待存储数据的数据量的存储块,作为当前存储块。
在一些示例中,该当前存储块的容量可以是当前待存储数据的数据量的倍数,该倍数可以是大于或等于1的数。
S230~S280,可以与图2步骤S230~S280完全相同,这里不再重复。
本实施例中,在选择数据存储区时,可以从多个数据存储区中选择剩余存储量大于当前待存储数据的数据量的数据存储区为当前数据存储区;这样可以使得在分配当前存储块时,仅在该当前数据存储区中为该当前待存储数据分配一个当前存储块,便可以存储该当前待存储数据。可以实现将当前待存储数据作为一个整体进行存储。
另外,本实例中,在分配存储块时,根据当前待存储数据的数据量分配当前存储块,相对现有技术预先将固定存储块的大小,能够有效地减少出现存储碎片的情况,进一步提高了存储介质的利用率。
在图2所示的一种数据存储方法基础上,本发明实施例还提供了一种可能的实现方式,如图5所示,为本发明实施例的一种数据的存储方法第四种实施方式的流程图,包括:
S210,获得当前待存储数据的数据量及当前待存储数据的描述信息。
S223,从多个数据存储区中选择未被标识为已用的数据存储区中,选择剩余存储量大于当前待存储数据的数据量的数据存储区为当前数据存储区;
S224,按照当前待存储数据的数据量,在当前数据存储区中分配大于或等于当前待存储数据的数据量的存储块,作为当前存储块。
具体的,当该多个数据存储区中存在添加有已用标识的数据存储区时,上述的电子设备在为当前待存储数据分配当前存储块时,可以从多个数据存储区中选择未被标识为已用的数据存储区中,选择剩余存储量大于当前待存储数据的数据量的数据存储区为当前数据存储区。
然后,再执行按照当前待存储数据的数据量,在当前数据存储区中分配大于或等于当前待存储数据的数据量的存储块,作为当前存储块的步骤。
通过本步骤,可以使得上述的电子设备仅在未添加已用标识的数据存储区中进行选择,减少选择当前数据存储区的时间。从而可以提高存储当前待存储数据的存储效率。
S240~S280,可以与图2步骤S240~S280完全相同,这里不再重复。
在图5中,在执行步骤S280,将当前待存储数据存储至当前存储块中的之后,本发明实施例的一种数据的存储方法,还可以包括:
S300,判断当前数据存储区已存储的数据量是否达到预设阈值。
如果是,则执行步骤S310。如果否,则结束处理。
S310,则将该当前数据存储区标识为已用。
具体的,为了使得上述的电子设备能够快速查找到能够存储当前待存储数据的当前数据存储区。上述的电子设备在存储当前待存储数据后,可以判断当前数据存储区已存储的数据量是否已达到预设阈值。如果是,则说明该当前数据存储区在后续步骤中,不能存储其他待存储数据。因此,可以对该当前数据存储区添加已用标识,以标识该当前数据存储区不能存储其他待存储数据。
在一些示例中,该预设阈值可以是根据经验预先设置的阈值,该预设阈值可以设置为当前数据存储区总容量的95%。也可以针对20G的当前数据存储区,将该当前数据存储区的预设阈值设置为19.5G。这都是可以的。
本实施例中,通过对已存储的数据量达到预设阈值的当前数据存储区,添加已用标识,可以使得上述的电子设备在后续步骤中,存储其他待存储数据时,能够排除该添加有已用标识的数据存储区,从而可以使得上述的电子设备能够快速查找到能够存储其他待存储数据的数据存储区,提高在该存储介质存储待存储数据的速率。
在图2所示的一种数据存储方法基础上,本发明实施例还提供了一种可能的实现方式,如图6所示,为本发明实施例的一种数据的存储方法第五种实施方式的流程图,包括:
S227,选择多个数据存储区作为多个当前数据存储区;
S228,基于当前待存储数据的数据量,在多个当前数据存储区中,分别分配用于存储部分当前待存储数据的当前存储块。
在一些示例中,上述的多个数据存储区中每个数据存储区都存在可用容量,但该可用容量都小于当前待存储数据的数据量,针对该情况,本发明实施例还提供了一种可能的实现方式。
具体的,上述的电子设备可以在该多个数据存储区中选择多个当前数据存储区,以在每个当前数据存储区中为当前待存储数据的部分数据分配当前存储块。
在选择得到多个当前数据存储区后,上述的电子设备可以在多个当前数据存储区中,分别分配用于存储部分当前待存储数据的当前存储块。也即,每个当前存储块,存储该当前待存储数据的部分数据,以采用处于不同当前数据存储区中的多个当前存储块存储该当前待存储数据。
S230~S280,可以与图2步骤S230~S280完全相同,这里不再重复。
在本实施例中,通过在多个当前数据存储区中,分别分配用于存储部分当前待存储数据的当前存储块,可以使得该多个当前数据存储区中的每个数据存储区都不能存储该当前待存储数据时,可以有效利用该多个当前数据存储区的存储空间。从而可以提高本发明实施例的存储介质的存储空间的利用率。
需要说明的是,图3~图6分别对不同的处理步骤进行了详细的说明。在实际应用中,不限于这几种实施方式。本领域技术人员能够根据实际需要,对不同图中的步骤进行排列组合而形成的具体实施方式,这些具体实施方式亦在本发明实施例保护范围之内。
相应于上述的数据的存储方法,本发明实施例还提供了一种数据的检索方法,该数据的检索方法,用于存储数据的存储介质,存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
一级索引区用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在存储介质中的存储位置。
二级索引区用于存储预设的每个数据存储区在存储介质中的存储位置信息;三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息。
在一些示例中,该存储介质的结构可以是如图1所示的存储介质的划分结构。
具体的,如图7所示,为本发明实施例的一种数据的检索方法第一种实施方式的流程图,在图7中,该方法可以包括:
S710,获得当前检索条件。
具体的,当业务人员在上述的存储介质中查询存储的数据时,可以向应用本发明实施例的一种数据检索方法的电子设备输入检索条件。
该电子设备在接收到业务人员输入的检索条件后,可以将该检索条件作为当前检索条件,以在后续步骤中,通过该检索条件检索待检索数据。
S720,在一级索引区查询符合当前检索条件的目标数据的当前描述信息。
上述的电子设备在获得到当前检索条件后,可以在采用图2所示的数据的存储方法的存储介质中的一级索引区,查询符合当前检索条件的目标数据的当前描述信息。
例如,假设该当前检索条件为:数据类型为wma,数据量为50M,关键词为闯红灯特征数据。则上述的电子设备可以根据该当前检索条件,在一级索引区,查询符合检索条件“数据类型为wma,数据量为50M,关键词为闯红灯特征数据”的目标数据的当前描述信息。
S730,针对每个目标数据,获得与目标数据的当前描述信息对应的一级索引。
在一些示例中,通过上述的检索条件进行检索,可能检索到一个目标数据的当前描述信息,也可能会检索到多个目标数据的当前描述信息。
对此,上述的电子设备可以针对每个目标数据,获得与目标数据的当前描述信息对应的一级索引。
S740,根据一级索引,从二级索引区获得目标数据所在的数据存储区在存储介质的位置,从三级索引区获得存储目标数据的存储块在数据存储区的位置。
具体的,在一级索引区,通过该一级索引,可以直接得到二级索引和三级索引。进而可以通过该二级索引,在二级索引区获得目标数据所在的数据存储区在存储介质的位置。通过该三级索引,在三级索引区获得存储目标数据的存储块在数据存储区的位置。
对比于现有技术,本发明实施例的一种数据检索方法,可以直接通过该一级索引,确定目标数据所在的数据存储区的二级索引以及存储目标数据的存储块的三级索引,然后通过该二级索引和三级索引,可以得到目标数据所在的数据存储区在存储介质的位置和存储目标数据的存储块在数据存储区的位置。不需要在每一级索引区,通过多个检索条件进行检索。从而可以节省检索过程的时间开销,提高检索效率。
S750,按照目标数据所在数据存储区在存储介质的位置和存储目标数据的存储块在数据存储区的位置,读取目标数据。
具体的,上述的电子设备在确定目标数据所在数据存储区在存储介质的位置和存储目标数据的存储块在数据存储区的位置后,可以按照目标数据所在数据存储区在存储介质的位置和存储目标数据的存储块在数据存储区的位置,读取目标数据。
本发明实施例提供的一种数据的检索方法,用于采用本发明实施例的一种数据的存储方法存储数据的存储介质中,由于该存储介质在存储数据时,是在获得当前待存储数据的数据量及当前待存储数据的描述信息后,从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块,可以将当前待存储数据存储至该当前存储块中,通过获得当前存储块在当前数据存储区的位置信息,将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;从二级索引区中,获取当前数据存储区在存储介质的位置信息,根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引;将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中。因此,在检索时,可以通过检索与待检索数据对应的描述信息,检索到与待检索数据对应的一级索引,进而可以确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置。不进行通过现有技术中的在每一级索引区,采用多个检索条件进行检索的过程。从而可以节省检索过程的时间开销,提高检索效率。
在一些示例中,二级索引区进一步用于存储标识每个数据存储区在存储介质的位置的索引;每个数据存储区在存储介质的位置的索引,为预先按预设第一数据处理算法,对每个数据存储区在存储介质中的存储位置信息进行数据处理获得的。
在一些示例中,可以通过以下方式,对每个数据存储区在存储介质中的存储位置信息进行数据处理,获得每个数据存储区在存储介质的位置的索引:
采用哈希算法,对每个数据存储区在存储介质中的存储位置信息进行计算,获得每个数据存储区在存储介质的位置的索引。
在一些示例中,上述的电子设备还可以采用数组的方法,对每个数据存储区在存储介质中的存储位置信息进行计算,获得每个数据存储区在存储介质的位置的索引。
每个三级索引区,还用于存储每个存储块在与该三级索引区对应的数据存储区的位置的索引;每个存储块在与该三级索引区对应的数据存储区的位置的索引,为:在数据存储过程中,按预设第一数据处理算法,对当前存储数据的存储块在当前数据存储区的位置信息进行数据处理获得的。
在一些示例中,上述的电子设备可以通过以下方式,对当前存储块在当前数据存储区的位置信息进行数据处理,获得每个存储块在与该三级索引区对应的数据存储区的位置的索引:
采用哈希算法,对当前存储块在当前数据存储区的位置信息进行计算,获得每个存储块在与该三级索引区对应的数据存储区的位置的索引。
在一些示例中,上述的电子设备还可以采用数组的方法,对每个数据存储区在存储介质中的存储位置信息进行计算,获得每个数据存储区在存储介质的位置的索引。
一级索引,为:按预设第二数据处理算法,对存储块在数据存储区的索引和该数据存储区在存储介质的索引进行数据处理获得。
在一些示例中,上述的电子设备,可以通过以下方式,对存储块在数据存储区的索引和该数据存储区在存储介质的索引进行数据处理,获得一级索引:
将存储块在数据存储区的索引和该数据存储区在存储介质的索引进行合并,获得合并后的索引数据,并将合并后的索引数据作为一级索引,一级索引用于标识存储块在数据存储区的位置及数据存储区在存储介质的存储位置。
在本发明实施例的一个方面,业务人员在向上述的电子设备输入检索条件时,还可以向上述的电子设备输入操作指令。该操作指令可以是读取指令、修改指令或删除指令。
当操作指令为读取指令时,上述的电子设备在检索到与检索条件对应的目标数据后,可以从该存储介质中读取该目标数据。
当该操作指令为修改指令时,上述的电子设备在检索到与检索条件对应的目标数据后,可以将业务人员输入的新的待存储数据,存储到存储有目标数据的存储块中,实现对目标数据的修改。
在图7所示的一种数据的检索方法的基础上,本发明实施例还提供了一种可能的实现方式,如图8所示,为本发明实施例的一种数据的检索方法第二种实施方式的流程图,包括:
S741,采用与第二数据处理算法对应的第二数据恢复算法,对一级索引进行数据恢复,获得目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引。
在本发明实施例的一种可能的实现方式中,上述的电子设备在得到一级索引后,为了获得目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引,可以对该一级索引,采用与第二数据处理算法对应的第二数据恢复算法进行数据恢复。从而获得目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引。
在一些示例中,上述的电子设备在生成一级索引时,除了采用哈希算法外,还可以采用其他的预设算法,该其他的预设算法可以对生成的一级索引进行数据恢复。
S742,采用与第一数据处理算法对应的第一数据恢复算法,分别对目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引进行数据恢复,获得目标数据所在存储块在数据存储区的位置信息和该数据存储区在存储介质的位置信息。
相应的,为了获得目标数据所在存储块在数据存储区的位置信息和该数据存储区在存储介质的位置信息,上述的电子设备可以采用与第一数据处理算法对应的第一数据恢复算法,分别对目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引进行数据恢复,从而获得目标数据所在存储块在数据存储区的位置信息和该数据存储区在存储介质的位置信息。
在一些示例中,上述的电子设备在生成目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引时,除了采用哈希算法外,还可以采用其他的预设算法,该其他的预设算法可以对生成的目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引进行数据恢复。
在本实施例中,通过采用第二数据恢复算法,对一级索引进行数据恢复,可以获得目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引。然后采用第一数据恢复算法,分别对目标数据所在存储块在数据存储区的索引和该数据存储区在存储介质的索引进行数据恢复,可以获得目标数据所在存储块在数据存储区的位置信息和该数据存储区在存储介质的位置信息。由于第二数据处理算法和第一数据处理算法都是简单算法,因此,采用第二数据恢复算法和第一数据恢复算法,可以快速得到目标数据所在存储块在数据存储区的位置信息和该数据存储区在存储介质的位置信息。减少了检索过程中的时间开销,提高检索效率。
本发明实施例还提供了一种数据的存储方法,应用于如图1所示的存储数据的存储介质,该存储介质包括:一级索引区110、二级索引区120、多个三级索引区和与多个三级索引区一一对应的多个数据存储区130;
一级索引区110用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在存储介质中的存储位置;
二级索引区120用于存储预设的每个数据存储区在存储介质中的存储位置信息;
三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息。
该方法可以包括:
步骤A,获得当前待存储数据;
步骤B,从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块;
步骤C,将当前待存储数据存入当前存储块。
在一些示例中,该存储介质中可以设置有读写电路,该读写电路可以用于对该当前待存储数据执行写入操作,该读写电路还可以根据处理器的读取指令,从该存储介质中读取数据。
当该读写电路获得到当前待存储数据后,可以依据该分配的当前存储块,将该当前待存储数据存储到当前存储块中。
由于该存储数据的存储介质采用了一级索引区110、二级索引区120、多个三级索引区,并且该存储介质还包括有与多个三级索引区一一对应的多个数据存储区,使得在存储待存储数据时,可以存储到数据存储区中的存储块中,进而可以方便建立标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引。进一步的,可以方便在检索时,可以通过该一级索引,快速查找到存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置。从而提高了检索的效率。
具体的,二级索引区120进一步用于存储每个数据存储区在存储介质的位置的索引;每个数据存储区在存储介质的位置的索引为预先按预设第一数据处理算法,对每个数据存储区在存储介质中的存储位置信息进行数据处理获得的;
第三索引区进一步用于存储每个存储块在数据存储区的索引;每个存储块在其数据存储区的位置的索引,为:在数据存储过程中,按预设第一数据处理算法,对当前存储数据的存储块在当前数据存储区的位置信息进行数据处理获得的。
在一些示例中,该存储介质可以存储:存储接口程序、删除接口程序和读取接口程序。
其中,该存储接口,用于采用上述的数据的存储方法,向存储介质中存储待存储数据。
在一些示例中,该存储接口还用于在采用上述的数据的检索方法,检索到存储目标数据的存储块后,对该存储块中的目标数据进行修改。
删除接口,用于在采用上述的数据的检索方法,检索到存储目标数据的存储块后,对该存储块中的目标数据进行删除操作,以释放该存储介质的存储空间。
读取接口,用于在采用上述的数据的检索方法,检索到存储目标数据的存储块后,读取该存储块中的目标数据。
使用上述的存储介质进行数据存储和数据检索,在数据存储过程中,是将描述信息与一级索引保存至一级索引区区;在检索时,根据目标数据的在一级索引区获得目标数据的描述信息,根据目标数据的描述信息可以获得一级索引,由于一级索引能够标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置,因此可以直接根据一级索引获得存储目标数据的存储块在数据存储区的位置和该数据存储区在存储介质中位置,从而得到目标数据的存储位置,按该存储块在数据存储区的位置和该数据存储区在存储介质中位置读取目标数据。
本发明实施例还提供了一种电子设备,如图9所示,该电子设备包括处理器910、程序存储器920和数据存储器930;
程序存储器920,用于存放计算机程序;
数据存储器930,包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
一级索引区用于存储已存储数据的描述信息和对应的一级索引,一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在存储介质中的存储位置;
二级索引区用于存储预设的每个数据存储区在存储介质中的存储位置信息;三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;
处理器910,用于执行程序存储器920上所存放的程序时,实现如下存储步骤:
获得当前待存储数据的数据量及当前待存储数据的描述信息;
从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块;
获得当前存储块在当前数据存储区的位置信息;
将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;
从二级索引区中,获取当前数据存储区在存储介质的位置信息;
根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引;
将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中;
将当前待存储数据存储至当前存储块中。
或者,
如下检索步骤:
获得当前检索条件;
在一级索引区查询符合当前检索条件的目标数据的当前描述信息;
针对每个目标数据,获得与目标数据的当前描述信息对应的一级索引;
根据一级索引,从二级索引区获得目标数据所在的数据存储区在存储介质的位置,从三级索引区获得存储目标数据的存储块在数据存储区的位置;
按照目标数据所在数据存储区在存储介质的位置和存储目标数据的存储块在数据存储区的位置,读取目标数据。
本发明实施例的一种电子设备,在获得当前待存储数据的数据量及当前待存储数据的描述信息后,从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块,可以将当前待存储数据存储至该当前存储块中;通过获得当前存储块在当前数据存储区的位置信息,将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;从二级索引区中,获取当前数据存储区在存储介质的位置信息,根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引,将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中;从而可以使得在后续检索时,可以通过检索与待检索数据对应的描述信息,检索到与待检索数据对应的一级索引,进而可以确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置,进一步的,由于在一级索引区中存储的是当前待存储数据的描述信息,该描述信息可以用于描述不同类型的数据。因此,也不需要业务人员针对不同类型的数据,编写不同的索引接口,从而可以减少开发人员的工作量。
上述电子设备中的处理器910、程序存储器920和数据存储器930,可以通过通信总线连接,通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
程序存储器920和数据存储器930可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现以下存储步骤:
获得当前待存储数据的数据量及当前待存储数据的描述信息;
从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块;
获得当前存储块在当前数据存储区的位置信息;
将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;
从二级索引区中,获取当前数据存储区在存储介质的位置信息;
根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引;
将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中;
将当前待存储数据存储至当前存储块中。
或者,如下检索步骤:
获得当前检索条件;
在一级索引区查询符合当前检索条件的目标数据的当前描述信息;
针对每个目标数据,获得与目标数据的当前描述信息对应的一级索引;
根据一级索引,从二级索引区获得目标数据所在的数据存储区在存储介质的位置,从三级索引区获得存储目标数据的存储块在数据存储区的位置;
按照目标数据所在数据存储区在存储介质的位置和存储目标数据的存储块在数据存储区的位置,读取目标数据。
本发明实施例的一种计算机可读存储介质,在获得当前待存储数据的数据量及当前待存储数据的描述信息后,从多个数据存储区中选择用于存储当前待存储数据的当前数据存储区,并在当前数据存储区中为当前待存储数据分配当前存储块,可以将当前待存储数据存储至该当前存储块中;通过获得当前存储块在当前数据存储区的位置信息,将当前存储块在当前数据存储区的位置信息,存储至与当前数据存储区对应的三级索引区中;从二级索引区中,获取当前数据存储区在存储介质的位置信息,根据当前存储块在当前数据存储区的位置信息,及当前数据存储区在存储介质的位置信息,生成用于标识当前存储块在当前数据存储区的位置及当前数据存储区在存储介质的位置的一级索引,将生成的一级索引及当前待存储数据的描述信息,对应存储至一级索引区中;从而可以使得在后续检索时,可以通过检索与待检索数据对应的描述信息,检索到与待检索数据对应的一级索引,进而可以确定存储该待检索数据的存储块在数据存储区中的位置,该数据存储区在上述的存储介质中的位置,进一步的,由于在一级索引区中存储的是待存储数据的描述信息,该描述信息可以用于描述不同类型的数据。因此,也不需要业务人员针对不同类型的数据,编写不同的索引接口,从而可以减少开发人员的工作量。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (13)
1.一种数据的存储方法,其特征在于,存储所述数据的存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
所述一级索引区用于存储已存储数据的描述信息和对应的一级索引,所述一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置信息,及该数据存储区在所述存储介质中的存储位置信息;
所述二级索引区用于存储预设的每个数据存储区在所述存储介质中的存储位置信息;所述三级索引区用于存储每个已存储数据的存储块在所述数据存储区的位置信息;
所述方法包括:
获得当前待存储数据的数据量及当前待存储数据的描述信息;
基于所述当前待存储数据的数据量,从所述多个数据存储区中选择用于存储所述当前待存储数据的当前数据存储区,并在当前数据存储区中为所述当前待存储数据分配当前存储块;
获得所述当前存储块在所述当前数据存储区的位置信息;
将所述当前存储块在所述当前数据存储区的位置信息,存储至与所述当前数据存储区对应的三级索引区中;
从所述二级索引区中,获取所述当前数据存储区在所述存储介质的位置信息;
根据所述当前存储块在所述当前数据存储区的位置信息,及所述当前数据存储区在所述存储介质的位置信息,生成用于标识所述当前存储块在所述当前数据存储区的位置及所述当前数据存储区在所述存储介质的位置的一级索引;
将生成的一级索引及所述当前待存储数据的描述信息,对应存储至一级索引区中;
将所述当前待存储数据存储至所述当前存储块中。
2.根据权利要求1所述的方法,其特征在于,所述二级索引区进一步用于存储标识每个数据存储区在所述存储介质的位置的索引;所述每个数据存储区在所述存储介质的位置的索引,为预先按预设第一数据处理算法,对每个数据存储区在所述存储介质中的存储位置信息进行数据处理获得的;
在所述将所述当前存储块在所述当前数据存储区的位置信息,存储至与所述当前数据存储区对应的三级索引区中的步骤之前,还包括:
按所述预设第一数据处理算法,对所述当前存储块在所述当前数据存储区的位置信息进行数据处理,获得所述当前存储块在所述当前数据存储区的索引;
将所述当前存储块在当前数据存储区的位置信息存储至当前数据存储区对应的三级索引区中的步骤,包括:
将获得的所述当前存储块在所述当前数据存储区的索引,和所述当前存储块在所述当前数据存储区的位置信息对应存储至与所述当前数据存储区对应的三级索引区中;
所述从所述二级索引区中,获取所述当前数据存储区在所述存储介质的位置信息的步骤,包括:
从所述二级索引区中,获取所述当前数据存储区的索引及所述当前数据存储区在所述存储介质的位置信息;
所述根据所述当前存储块在所述当前数据存储区的位置信息,及所述当前数据存储区在所述存储介质的位置信息,生成用于标识所述当前存储块在所述当前数据存储区的位置及所述当前数据存储区在所述存储介质的位置的一级索引的步骤,包括:
按预设第二数据处理算法,对所述当前存储块在所述当前数据存储区的索引和所述当前数据存储区的索引进行数据处理,生成用于标识所述当前存储块在所述当前数据存储区的位置及所述当前数据存储区在所述存储介质的位置的一级索引。
3.根据权利要求2所述的方法,其特征在于,预先按预设第一数据处理算法,对每个数据存储区在所述存储介质中的存储位置信息进行数据处理,获得每个数据存储区的索引,包括:
采用哈希算法,对所述每个数据存储区在所述存储介质中的存储位置信息进行计算,获得所述每个数据存储区的索引;
所述按所述预设第一数据处理算法,对所述当前存储块在所述当前数据存储区的位置信息进行数据处理,获得所述当前存储块在所述当前数据存储区的索引的步骤,包括:
采用哈希算法,对所述当前存储块在所述当前数据存储区的位置信息进行计算,获得所述当前存储块在所述当前数据存储区的索引;
所述按所述预设第二数据处理算法,对所述当前存储块在所述当前数据存储区的索引和所述当前数据存储区的索引进行数据处理,生成用于标识所述当前存储块在所述当前数据存储区的位置及所述当前数据存储区在所述存储介质的位置的一级索引的步骤,包括:
将所述当前存储块在所述当前数据存储区的索引和所述当前数据存储区的索引进行合并,获得合并后的索引数据,并将所述合并后的索引数据作为所述一级索引,所述一级索引用于标识所述当前存储块在所述当前数据存储区的位置及所述当前数据存储区在所述存储介质的存储位置。
4.根据权利要求1所述的方法,其特征在于,所述基于所述当前待存储数据的数据量,从所述多个数据存储区中选择用于存储所述当前待存储数据的当前数据存储区,并在当前数据存储区中为所述当前待存储数据分配当前存储块的步骤,包括:
从所述多个数据存储区中选择剩余存储量大于所述当前待存储数据的数据量的数据存储区为当前数据存储区;
按照当前待存储数据的数据量,在所述当前数据存储区中分配大于或等于所述当前待存储数据的数据量的存储块,作为当前存储块。
5.根据权利要求1所述的方法,其特征在于,在所述将所述当前待存储数据存储至所述当前存储块中的步骤后,还包括:
判断当前数据存储区已存储的数据量是否达到预设阈值;
如果是,则将该当前数据存储区标识为已用;
所述基于所述当前待存储数据的数据量,从所述多个数据存储区中选择用于存储所述当前待存储数据的当前数据存储区,并在当前数据存储区中为所述当前待存储数据分配当前存储块的步骤,包括:
从所述多个数据存储区中选择未被标识为已用的数据存储区中,选择剩余存储量大于所述当前待存储数据的数据量的数据存储区为当前数据存储区;
按照当前待存储数据的数据量,在所述当前数据存储区中分配大于或等于所述当前待存储数据的数据量的存储块,作为当前存储块。
6.根据权利要求1所述的方法,其特征在于,所述基于所述当前待存储数据的数据量,从所述多个数据存储区中选择用于存储所述当前待存储数据的当前数据存储区,并在当前数据存储区中为所述当前待存储数据分配当前存储块的步骤,包括:
选择多个数据存储区作为多个当前数据存储区;
基于所述当前待存储数据的数据量,在多个当前数据存储区中,分别分配用于存储部分当前待存储数据的当前存储块。
7.一种数据的检索方法,其特征在于,存储所述数据的存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
所述一级索引区用于存储已存储数据的描述信息和对应的一级索引,所述一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置信息,及该数据存储区在所述存储介质中的存储位置信息;
所述二级索引区用于存储预设的每个数据存储区在所述存储介质中的存储位置信息;所述三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;所述检索方法包括:
获得当前检索条件;
在所述一级索引区查询符合所述当前检索条件的目标数据的当前描述信息;
针对每个目标数据,获得与所述目标数据的当前描述信息对应的一级索引;
根据所述一级索引,从所述二级索引区获得目标数据所在的数据存储区在所述存储介质的位置信息,从所述三级索引区获得存储目标数据的存储块在所述数据存储区的位置信息;
按照目标数据所在数据存储区在所述存储介质的位置信息和存储目标数据的存储块在所述数据存储区的位置信息,读取目标数据。
8.根据权利要求7所述的方法,其特征在于,所述二级索引区进一步用于存储标识每个数据存储区在所述存储介质的位置的索引;所述每个数据存储区在所述存储介质的位置的索引,为预先按预设第一数据处理算法,对每个数据存储区在所述存储介质中的存储位置信息进行数据处理获得的;
每个所述三级索引区,还用于存储每个存储块在与该三级索引区对应的数据存储区的位置的索引;所述每个存储块在与该三级索引区对应的数据存储区的位置的索引,为:在数据存储过程中,按所述预设第一数据处理算法,对当前存储数据的存储块在当前数据存储区的位置信息进行数据处理获得的;
所述一级索引为:按预设第二数据处理算法,对存储块在数据存储区的索引和该数据存储区在所述存储介质的索引进行数据处理获得;
所述根据所述一级索引,从所述二级索引区获得目标数据所在的数据存储区在所述存储介质的位置,从所述三级索引区获得存储目标数据的存储块在所述数据存储区的位置的步骤,包括:
采用与所述第二数据处理算法对应的第二数据恢复算法,对所述一级索引进行数据恢复,获得所述目标数据所在存储块在所述数据存储区的索引和该数据存储区在所述存储介质的索引;
采用与所述第一数据处理算法对应的第一数据恢复算法,分别对所述目标数据所在存储块在所述数据存储区的索引和该数据存储区在所述存储介质的索引进行数据恢复,获得所述目标数据所在存储块在所述数据存储区的位置信息和该数据存储区在所述存储介质的位置信息。
9.根据权利要求8所述的方法,其特征在于,预先按预设第一数据处理算法,对每个数据存储区在所述存储介质中的存储位置信息进行数据处理,获得每个数据存储区在所述存储介质的位置的索引,包括:
采用哈希算法,对所述每个数据存储区在所述存储介质中的存储位置信息进行计算,获得所述每个数据存储区在所述存储介质的位置的索引;
按所述预设第一数据处理算法,对当前存储块在所述当前数据存储区的位置信息进行数据处理,获得所述每个存储块在与该三级索引区对应的数据存储区的位置的索引的步骤,包括:
采用哈希算法,对所述当前存储块在所述当前数据存储区的位置信息进行计算,获得所述每个存储块在与该三级索引区对应的数据存储区的位置的索引;
按所述预设第二数据处理算法,对存储块在数据存储区的索引和该数据存储区在所述存储介质的索引进行数据处理,获得所述一级索引的步骤,包括:
将所述存储块在所述数据存储区的索引和该数据存储区在所述存储介质的索引进行合并,获得合并后的索引数据,并将所述合并后的索引数据作为所述一级索引,所述一级索引用于标识所述存储块在所述数据存储区的位置及所述数据存储区在所述存储介质的位置的一级索引。
10.一种数据的存储方法,其特征在于,应用于存储所述数据的存储介质,所述存储所述数据的存储介质包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
所述一级索引区用于存储已存储数据的描述信息和对应的一级索引,所述一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在所述存储介质中的存储位置;
所述二级索引区用于存储预设的每个数据存储区在所述存储介质中的存储位置信息;所述三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;
所述方法包括:
获得当前待存储数据;
从所述多个数据存储区中选择用于存储所述当前待存储数据的当前数据存储区,并在所述当前数据存储区中为所述当前待存储数据分配当前存储块;
将所述当前待存储数据存入所述当前存储块。
11.根据权利要求10所述的方法,其特征在于,所述二级索引区进一步用于存储每个数据存储区在所述存储介质的位置的索引;所述每个数据存储区在所述存储介质的位置的索引为预先按预设第一数据处理算法,对每个数据存储区在所述存储介质中的存储位置信息进行数据处理获得的;
所述三级索引区进一步用于存储每个存储块在数据存储区的索引;所述每个存储块在其所述数据存储区的位置的索引,为:在数据存储过程中,按所述预设第一数据处理算法,对当前存储数据的存储块在当前数据存储区的位置信息进行数据处理获得的。
12.一种电子设备,其特征在于,包括处理器、程序存储器和数据存储器;
所述程序存储器,用于存放计算机程序;
所述数据存储器,包括:一级索引区、二级索引区、多个三级索引区和与多个三级索引区一一对应的多个数据存储区;
所述一级索引区用于存储已存储数据的描述信息和对应的一级索引,所述一级索引用于标识已存储数据所在的存储块在数据存储区的存储位置,及该数据存储区在所述存储介质中的存储位置;
所述二级索引区用于存储预设的每个数据存储区在所述存储介质中的存储位置信息;所述三级索引区用于存储每个已存储数据的存储块在数据存储区的位置信息;
处理器,用于执行程序存储器上所存放的程序时,实现权利要求1~11任一所述的方法步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~11任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811323660.8A CN111159438B (zh) | 2018-11-08 | 2018-11-08 | 一种数据的存储和检索方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811323660.8A CN111159438B (zh) | 2018-11-08 | 2018-11-08 | 一种数据的存储和检索方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159438A CN111159438A (zh) | 2020-05-15 |
CN111159438B true CN111159438B (zh) | 2022-06-03 |
Family
ID=70555458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811323660.8A Active CN111159438B (zh) | 2018-11-08 | 2018-11-08 | 一种数据的存储和检索方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159438B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100184A (zh) * | 2020-10-26 | 2020-12-18 | 上海擎感智能科技有限公司 | 车辆总里程数据存储方法和计算机存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6751343B1 (en) * | 1999-09-20 | 2004-06-15 | Ut-Battelle, Llc | Method for indexing and retrieving manufacturing-specific digital imagery based on image content |
US8793466B2 (en) * | 2012-04-27 | 2014-07-29 | Netapp, Inc. | Efficient data object storage and retrieval |
CN104008111B (zh) * | 2013-02-27 | 2019-02-15 | 深圳市腾讯计算机***有限公司 | 一种数据的存储管理方法及装置 |
CN103412962B (zh) * | 2013-09-04 | 2016-09-07 | 国家测绘地理信息局卫星测绘应用中心 | 一种海量瓦片数据的存储方法及读取方法 |
CN104363403B (zh) * | 2014-11-14 | 2017-12-15 | 浙江宇视科技有限公司 | 一种视频监控***中视频数据的存储方法及存储设备 |
-
2018
- 2018-11-08 CN CN201811323660.8A patent/CN111159438B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111159438A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200226100A1 (en) | Metadata query method and apparatus | |
CN109189991B (zh) | 重复视频识别方法、装置、终端及计算机可读存储介质 | |
US7610468B2 (en) | Modified buddy system memory allocation | |
US11347787B2 (en) | Image retrieval method and apparatus, system, server, and storage medium | |
KR101609088B1 (ko) | 검색 부하들에 따라 균형이 맞춰지는 지문 데이터베이스를 갖는 미디어 식별 시스템 | |
CN107015985B (zh) | 一种数据存储与获取方法及装置 | |
CN107957848B (zh) | 重删处理方法及存储设备 | |
CN109669622B (zh) | 一种文件管理方法、文件管理装置、电子设备及存储介质 | |
CN109766318B (zh) | 文件读取方法及装置 | |
CN111061752B (zh) | 数据处理方法、装置及电子设备 | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
US10712943B2 (en) | Database memory monitoring and defragmentation of database indexes | |
CN103635887A (zh) | 缓存数据的方法和存储*** | |
CN109669621B (zh) | 一种文件管理方法、文件管理***、电子设备及存储介质 | |
CN111159438B (zh) | 一种数据的存储和检索方法、电子设备及存储介质 | |
CN113157600A (zh) | 一种叠瓦式硬盘的空间分配方法、文件存储***及服务器 | |
CN110825953B (zh) | 数据查询方法、装置和设备 | |
CN114077690A (zh) | 向量数据处理方法、装置、设备及存储介质 | |
CN113568877A (zh) | 一种文件合并方法、装置、电子设备及存储介质 | |
CN111552438A (zh) | 一种对象写入的方法、装置、服务器和存储介质 | |
CN109669623B (zh) | 一种文件管理方法、文件管理装置、电子设备及存储介质 | |
CN111813971B (zh) | 哈希表构建及图像匹配方法和装置,存储介质和电子设备 | |
CN114089924B (zh) | 区块链账本数据存储***及方法 | |
CN112818007B (zh) | 数据处理方法、装置及可读存储介质 | |
CN114595066A (zh) | 一种预留内存的处理方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |