CN116244477B - 区间分级检索方法、装置、计算机设备及存储介质 - Google Patents
区间分级检索方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116244477B CN116244477B CN202310524110.7A CN202310524110A CN116244477B CN 116244477 B CN116244477 B CN 116244477B CN 202310524110 A CN202310524110 A CN 202310524110A CN 116244477 B CN116244477 B CN 116244477B
- Authority
- CN
- China
- Prior art keywords
- node
- index
- nodes
- index node
- value
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
- G06F16/902—Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了区间分级检索方法、装置、计算机设备及存储介质。所述区间分级检索的方法,包括:设置包含若干存储节点和两级索引节点的远程字典服务,设置成员数量;将映射表内的内容按成员数量按顺序存储在存储节点内;每个一级索引节点对应设置一个存储节点作为成员;每个二级索引节点按顺序设置成员数量的一级索引节点作为其成员;获取待检索数值;在二级索引节点检索获得待检索数值所在的一级索引节点编号;根据一级索引节点编号在其对应的存储节点获得待检索数值的内容。本申请实施例的区间分级检索方法效率高,检索速度快,占用较少的系统资源,系统资源利用率高。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种区间分级检索方法、装置、计算机设备及计算机可读存储介质。
背景技术
随着计算机技术的快速发展,通常需要对具有大量数据的映射表进行检索,映射表可以是iOS(ihpone operation system,ihpone操作系统)系统符号映射表、各年龄段对应人数的映射表、用户积分数与对应用户的映射表等。
上述这些映射表,如系统符号映射表,是代表原代码行号的偏移量与系统原代码的映射表;当应用程序崩溃时崩溃文件会记录的应用程序崩溃时堆栈地址,该堆栈地址通常指应用程序崩溃时的偏移量。为修复应用程序或查找崩溃原因,需要通过应用程序崩溃时的偏移量查找到对应的系统原代码。因系统符号映射表的数据量非常大,通常是百万级以上的数据量,每次检索时均为根据崩溃时的偏移量从头到尾对系统符号映射表进行检索,检索速度非常慢,效率非常低,占用大量系统资源。
因而,现有技术在检索数据量大的映射表时,需按常规方法从头到尾地检索,检索速度非常慢,效率非常低,占用大量系统资源,系统资源利用率低。
发明内容
本申请的目的在于提供一种检索效率高的区间分级检索方法、装置、计算机设备及计算机可读存储介质,旨在解决上述技术问题之一。
第一方面,一种区间分级检索的方法,用于对映射表的检索,所述映射表包含递增排列的数值和所述数值对应的内容,包括:设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,设置每个所述存储节点和所述二级索引节点包含的成员数量;将所述映射表内的内容按所述成员数量按顺序存储在所述存储节点内,对所述存储节点按顺序编号,并标识每个所述存储节点存储的内容对应的数值范围;每个所述一级索引节点对应设置一个所述存储节点作为成员,按顺序对所述一级索引节点编号,所述一级索引节点的数值范围标识为与其对应的所述存储节点的数值范围;每个所述二级索引节点按顺序设置所述成员数量的所述一级索引节点作为其成员,所述二级索引节点按顺序编号,并标识每个所述二级索引节点的数值范围,所述二级索引节点的数值范围为其对应的所有所述一级索引节点对应的总数值范围;获取待检索数值;在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号;根据所述一级索引节点编号在其对应的所述存储节点获得所述待检索数值的内容。
优选地,上述设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,设置每个所述存储节点和所述二级索引节点包含的成员数量的步骤之后还包括:设置所述远程字典服务的所述索引节点的预设级数; 设置每个所述存储节点和所述二级索引节点包含的成员数量具体为:设置每个所述存储节点和所述二级索引节点及以上索引节点包含的成员数量;所述获取待检索数值的步骤之前还包括:判断已创建的索引节点级数是否等于所述预设级数,如果是,不做处理;如果否,创建新的上层索引节点,每个所述新的上层索引节点按顺序设置所述成员数量的原最上层索引节点作为其成员,所述新的上层索引节点按顺序编号,并标识每个所述新的上层索引节点的数值范围,所述新的上层索引节点的数值范围为其对应的所有所述原最上层索引节点对应的总数值范围;所述获取待检索数值的步骤之后还包括:从最上层索引节点开始检索获得所述待检索数值所在的下一层索引节点的编号,直至获得所述待检索数值所在的所述二级索引节点编号。
优选地,上述最上层索引节点的数目为一个。
优选地,上述在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号具体为:按顺序判断所述待检索数值是否在所述二级索引节点对应的各所述一级索引节点的数值范围内,如果是,返回所述一级索引节点编号;如果否,检索失败。
优选地,上述在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号具体为:用返回有序集合中指定分数区间的成员列表的方法在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号;所述从最上层索引节点开始检索获得所述待检索数值所在的下一层索引节点的编号具体为:所述从最上层索引节点开始用返回有序集合中指定分数区间的成员列表的方法检索获得所述待检索数值所在的下一层索引节点的编号;所述根据所述一级索引节点编号在其对应的所述存储节点获得所述待检索数值的内容具体为:所述根据所述一级索引节点编号在其对应的所述存储节点用获取键值方法获得所述待检索数值的内容。
优选地,上述映射表为应用程序的符号表;所述符号表包含递增排列的行号数值和所述行号数值对应的原代码;所述待检索数值为堆栈偏移量;所述获取待检索数值具体为:在应用程序堆栈内获取所述应用程序崩溃时的所述堆栈偏移量。
优选地,上述获取待检索数值的步骤之前还包括:生成所述存储节点和各索引节点的生存时间值;所述生存时间值包括创建时间和预设删除时间;所述生成所述存储节点和各索引节点的生存时间值的步骤之后还包括:判断当前系统时间是否等于所述预设删除时间:如果否,不做处理;如果是,删除所述所述存储节点和各索引节点。
第二方面,本申请实施例提供了一种区间分级检索装置,用于对映射表的检索,所述映射表包含递增排列的数值和所述数值对应的内容,包括:初始设置模块,用于设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,设置每个所述存储节点和所述二级索引节点包含的成员数量;存储节点模块,用于将所述映射表内的内容按所述成员数量按顺序存储在所述存储节点内,对所述存储节点按顺序编号,并标识每个所述存储节点存储的内容对应的数值范围;一级节点模块,用于每个所述一级索引节点对应设置一个所述存储节点作为成员,按顺序对所述一级索引节点编号,所述一级索引节点的数值范围标识为与其对应的所述存储节点的数值范围;二级节点模块,用于每个所述二级索引节点按顺序设置所述成员数量的所述一级索引节点作为其成员,所述二级索引节点按顺序编号,并标识每个所述二级索引节点的数值范围,所述二级索引节点的数值范围为其对应的所有所述一级索引节点对应的总数值范围;数值获取模块,用于获取待检索数值;检索编号模块,用于在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号;内容获取模块,用于根据所述一级索引节点编号在其对应的所述存储节点获得所述待检索数值的内容。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的区间分级检索的方法的步骤。
第四方面,本申请实施例提供了一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如上所述的区间分级检索的方法的步骤。
本申请实施例的区间分级检索方法,设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,将映射表内的内容按顺序存储在存储节点内,每个存储节点包括预设成员数量的数值对应的内容,每个一级索引节点对应设置一个存储节点作为成员,一级索引节点的数值范围即为其对应的存储节点存储的内容对应的数值范围,每个二级索引节点按顺序设置成员数量的一级索引节点作为其成员,二级索引节点的数值范围为其对应的所有一级索引节点对应的总数值范围。检索时,先在二级索引节点检索获得待检索数值所在的一级索引节点编号;然后根据一级索引节点编号在其对应的存储节点获得待检索数值的内容。
本申请实施例的区间分级检索方法,通过将映射表的内容存储在各存储节点内,并设置两级索引节点,因存储节点和两级索引节点均标识有对应的数值范围,因而检索时,只需在二级索引节点检索出待检索数值在哪个一级索引节点的数值范围内,由该一级索引节点数值范围获得一级索引节点编号,因一级索引节点和存储节点一一对应且编号一致,所以根据一级索引节点编号即获得其对应的存储节点编号,最后在该编号的存储节点获得待检索数值的内容。本申请实施例的区间分级检索方法根据待检索数值检索映射表的内容的效率非常高,检索速度快,不需要如现有技术那样从头到尾地检索,占用较少的系统资源,系统资源利用率高。
附图说明
图1是本申请一实施例提供的区间分级检索的方法的流程图;
图2是本申请一实施例提供的区间分级检索的在二级索引节点检索获得待检索数值所在的一级索引节点编号的方法的流程图;
图3是本申请一实施例提供的区间分级检索装置的结构示意图;
图4是本申请一实施例提供的计算机设备的具体结构框图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
请参阅图1,是本申请一实施例提供的区间分级检索的方法的流程图,本申请实施例提供了一种区间分级检索的方法,用于对映射表的检索,映射表包含递增排列的数值和数值对应的内容,包括:
S101、设置包含若干存储节点和两级索引节点的远程字典服务,两级索引节点包括若干一级索引节点和若干二级索引节点,设置每个存储节点和二级索引节点包含的成员数量;
S102、将映射表内的内容按成员数量按顺序存储在存储节点内,对存储节点按顺序编号,并标识每个存储节点存储的内容对应的数值范围;
S103、每个一级索引节点对应设置一个存储节点作为成员,按顺序对一级索引节点编号,一级索引节点的数值范围标识为与其对应的存储节点的数值范围;
S104、每个二级索引节点按顺序设置成员数量的一级索引节点作为其成员,二级索引节点按顺序编号,并标识每个二级索引节点的数值范围,二级索引节点的数值范围为其对应的所有一级索引节点对应的总数值范围;
S105、获取待检索数值;
S106、在二级索引节点检索获得待检索数值所在的一级索引节点编号;
S107、根据一级索引节点编号在其对应的存储节点获得待检索数值的内容。
远程字典服务Redis(Remote Dictionary Server ),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
每个存储节点和二级索引节点的成员数量可以根据数据量和实际应用场景设置,例如可以将每个存储节点和二级索引节点的成员数量设置为100或500等数值。当将每个存储节点和二级索引节点的成员数量设置为100时,每个存储节点存储了映射表100个数值对应的内容。如果映射表的数值是从1开始的连续递增自然数,存储时,第一个存储节点存储了数值为1~100对应的内容,第二个存储节点存储了数值为101~200对应的内容,第三个存储节点存储了数值为201~300对应的内容,以此类推,直至将映射表的内容按顺序存储在存储节点内。当然,映射表的数值是从任何一个数值开始的不连续递增自然数,只需要满足每个存储节点按顺序存储预设成员数量的数值对应的内容即可。对存储节点按顺序编号,可以从0或1等数值开始编号。当从1开始编号时,第一个存储节点的编号为1,第二个存储节点的编号为2,第三个存储节点的编号为3,以此类推。
每个一级索引节点对应设置一个存储节点作为成员,按顺序对一级索引节点编号,一级索引节点的数值范围标识为与其对应的存储节点的数值范围。即一级索引节点对应一个存储节点,第一个存储节点为第一个一级索引节点的成员,第一个一级索引节点可以编为“L1-1”,第一个一级索引节点的数值范围即为第一个存储节点的数值范围;第二个存储节点为第二个一级索引节点的成员,第二个一级索引节点可以编为“L1-2”,第二个一级索引节点的数值范围即为第二个存储节点的数值范围;第三个存储节点为第三个一级索引节点的成员,第三个一级索引节点可以编为“L1-3”,第三个一级索引节点的数值范围即为第三个存储节点的数值范围;以此类推,第N个存储节点为第N个一级索引节点的成员,第N个一级索引节点可以编为“L1-N”,第N个一级索引节点的数值范围即为第N个存储节点的数值范围。
每个二级索引节点按顺序设置成员数量的一级索引节点作为其成员,二级索引节点按顺序编号,并标识每个二级索引节点的数值范围,二级索引节点的数值范围为其对应的所有一级索引节点对应的总数值范围。当将每个存储节点和二级索引节点的成员数量设置为100时,每个二级索引节点对应设置100个一级索引节点作为其成员,第一个二级索引节点的100个一级索引节点的编号为“L1-1”~“L1-100”,第一个二级索引节点的数值范围为1~10000,第一个二级索引节点可以编为“L2-1”。第二个二级索引节点的100个一级索引节点的编号为“L1-101”~“L1-200”,第二个二级索引节点的数值范围为10001~20000,第二个二级索引节点可以编为“L2-2”,按顺序以此类推,直至将所有的一级索引节点都设置为其对应的二级索引节点的成员。
检索时,先在各二级索引节点内检索待检索数值在哪个一级索引节点的数值范围内,并返回该一级索引节点的编号。
本申请实施例的区间分级检索方法,设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,将映射表内的内容按顺序存储在存储节点内,每个存储节点包括预设成员数量的数值对应的内容,每个一级索引节点对应设置一个存储节点作为成员,一级索引节点的数值范围即为其对应的存储节点存储的内容对应的数值范围,每个二级索引节点按顺序设置成员数量的一级索引节点作为其成员,二级索引节点的数值范围为其对应的所有一级索引节点对应的总数值范围。检索时,先在二级索引节点检索获得待检索数值所在的一级索引节点编号;然后根据一级索引节点编号在其对应的存储节点获得待检索数值的内容。
本申请实施例的区间分级检索方法,设置远程字典服务Redis,通过将映射表的内容存储在各存储节点内,并设置两级索引节点,因存储节点和两级索引节点均标识有对应的数值范围,因而检索时,只需在二级索引节点检索出待检索数值在哪个一级索引节点的数值范围内,由该一级索引节点数值范围获得一级索引节点编号,因一级索引节点和存储节点一一对应且编号一致,所以根据一级索引节点编号即获得其对应的存储节点编号,最后在该编号的存储节点获得待检索数值的内容。本申请实施例的区间分级检索方法根据待检索数值检索映射表的内容的效率非常高,检索速度快,不需要如现有技术那样从头到尾地检索,占用较少的系统资源,系统资源利用率高。
较佳地,设置包含若干存储节点和两级索引节点的远程字典服务,两级索引节点包括若干一级索引节点和若干二级索引节点,设置每个存储节点和二级索引节点包含的成员数量的步骤之后还包括:设置远程字典服务的索引节点的预设级数;
设置每个存储节点和二级索引节点包含的成员数量具体为:设置每个存储节点和二级索引节点及以上索引节点包含的成员数量;
获取待检索数值的步骤之前还包括:判断已创建的索引节点级数是否等于预设级数,如果是,不做处理;如果否,创建新的上层索引节点,每个新的上层索引节点按顺序设置成员数量的原最上层索引节点作为其成员,新的上层索引节点按顺序编号,并标识每个新的上层索引节点的数值范围,新的上层索引节点的数值范围为其对应的所有原最上层索引节点对应的总数值范围;
获取待检索数值的步骤之后还包括:从最上层索引节点开始检索获得待检索数值所在的下一层索引节点的编号,直至获得待检索数值所在的二级索引节点编号。
三级及以上索引节点的创建方法、成员的设置方式、数值范围和编号方式和上面所述的二级索引节点的方式相同,在此不再赘述。
检索待检索数值时,是从最上层索引节点开始检索获得待检索数值所在的下一层索引节点的编号,直至获得待检索数值所在的二级索引节点编号。如检索三级索引节点时,先在各三级索引节点内检索待检索数值在哪个二级索引节点的数值范围内,并返回该二级索引节点的编号。
进一步较佳地,最上层索引节点的数目为一个。将最上层索引节点的数目为一个,即只需要对一个最上层索引节点进行检索,就可以获得待检索数值所在的下一级索引节点的编号,大大缩减了检索的范围,提高了检索的效率。
请参阅图2,是本申请一实施例提供的区间分级检索的在二级索引节点检索获得待检索数值所在的一级索引节点编号的方法的流程图,本申请一实施例提供的区间分级检索的在二级索引节点检索获得待检索数值所在的一级索引节点编号的方法,包括以下步骤:
S201、按顺序判断待检索数值是否在二级索引节点对应的各一级索引节点的数值范围内,如果是,执行步骤S202;如果否,执行步骤S203;
S202、返回一级索引节点编号;
S203、检索失败。
即如果待检索数值在某个一级索引节点的数值范围内,则返回该一级索引节点编号,说明待检索数值的内容在该一级索引节点对应的存储节点内。
较佳地,在二级索引节点检索获得待检索数值所在的一级索引节点编号具体为:用返回有序集合中指定分数区间的成员列表(ZRANGBYSCORE)的方法在二级索引节点检索获得待检索数值所在的一级索引节点编号;
从最上层索引节点开始检索获得待检索数值所在的下一层索引节点的编号具体为:从最上层索引节点开始用返回有序集合中指定分数区间的成员列表(ZRANGBYSCORE)的方法检索获得待检索数值所在的下一层索引节点的编号;
根据一级索引节点编号在其对应的存储节点获得待检索数值的内容具体为:根据一级索引节点编号在其对应的存储节点用获取键值(GET)方法获得待检索数值的内容。
返回有序集合中指定分数区间的成员列表(ZRANGBYSCORE)方法为现有技术Redis中zset集合(有序且不可重复的数据集合)的方法,有序集成员按分数值递增(从小到大)次序排列。具有相同分数值的成员按字典序来排列。
存储节点的编号为远程字典服务Redis的键(Key),存储节点存储的内容为值(value)。
索引节点的编号为远程字典服务Redis的键(Key),索引节点的编号加上字符串“@s”作为值(value),“@s”表示开始数值,开始数值写入score内;索引节点的编号加上字符串“@e”作为值(value),“@e”表示结束数值,结束数值写入score内。
例如假设待检索数值为76482948,索引节点的预设级数的数目为3个,则对三级索引节点检索的命令为ZRANGEBYSCORE L3 76482948 +inf LIMIT 1 1,inf LIMIT代表无穷大范围,即检索范围为大于等于76482948至无穷大,第一个1代表从第1个成员进行检索,第二个1代表只取一个符号条件的成员,通过该方法就可以找出76482948所在二级索引节点。假设返回了第三个二级索引节点编号,则对二级索引节点检索的命令为ZRANGEBYSCOREL2-3 76482948 +inf LIMIT 1 1,通过该方法就可以找出76482948所在一级索引节点编号。
根据一级索引节点编号在其对应的存储节点获得待检索数值的内容具体为:根据一级索引节点编号在其对应的存储节点用获取键值(GET)方法获得待检索数值的内容。通过命令GET 存储节点编号,获得存储在存储节点的内容。
检索时,存储节点的编号为远程字典服务Redis的键(Key),存储节点存储的内容为值(value),通过命令GET 存储节点编号,获得存储在存储节点的内容。
较佳地,映射表可以为应用程序的符号表;符号表包含递增排列的行号数值和行号数值对应的原代码;待检索数值为堆栈偏移量;
获取待检索数值具体为:在应用程序堆栈内获取应用程序崩溃时的堆栈偏移量。
当应用程序崩溃时崩溃文件会记录的应用程序崩溃时堆栈地址,该堆栈地址通常指应用程序崩溃时的偏移量,即用本申请实施例提供的区间分级检索的方法查找堆栈偏移量,可以快速高效地获得该堆栈偏移量对应的源代码。
当然,映射表也可以根据需要设置为用户积分和用户信息对应表,通过查找某个积分,获得该积分的所有用户的信息。当然也可以是各年龄段对应人数的对应表,具体年龄查找对应的人数等等。
较佳地,获取待检索数值的步骤之前还包括:
生成存储节点和各索引节点的生存时间值;
生存时间值包括创建时间和预设删除时间;
生成存储节点和各索引节点的生存时间值的步骤之后还包括:
判断当前系统时间是否等于预设删除时间:如果否,不做处理;如果是,删除存储节点、各索引节点。
即在存储节点和各索引节点创建时生成存储节点和各索引节点的生存时间值(TTL),当到达预设删除时间时,自动删除存储节点和各索引节点。通过上述方法,系统可以只保存最近几个版本远程字典服务的存储节点和各索引节点,对于已经不用的比较早版本的远程字典服务的存储节点和各索引节点及时进行清理,这样可以大大节省系统的存储空间。
请参阅图3,一种区间分级检索装置10,用于对映射表的检索,所述映射表包含递增排列的数值和所述数值对应的内容,包括:
初始设置模块11,用于设置包含若干存储节点和两级索引节点的远程字典服务,两级索引节点包括若干一级索引节点和若干二级索引节点,设置每个存储节点和二级索引节点包含的成员数量;
存储节点模块12,用于将映射表内的内容按成员数量按顺序存储在存储节点内,对存储节点按顺序编号,并标识每个存储节点存储的内容对应的数值范围;
一级节点模块13,用于每个一级索引节点对应设置一个存储节点作为成员,按顺序对一级索引节点编号,一级索引节点的数值范围标识为与其对应的存储节点的数值范围;
二级节点模块14,用于每个二级索引节点按顺序设置成员数量的一级索引节点作为其成员,二级索引节点按顺序编号,并标识每个二级索引节点的数值范围,二级索引节点的数值范围为其对应的所有一级索引节点对应的总数值范围;
数值获取模块15,用于获取待检索数值;
检索编号模块16,用于在二级索引节点检索获得待检索数值所在的一级索引节点编号;
内容获取模块17,用于根据一级索引节点编号在其对应的存储节点获得待检索数值的内容。
本申请一实施例提供的区间分级检索装置10与本申请上述实施例提供的区间分级检索的方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。
本申请一实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如本申请上述实施例提供的区间分级检索的方法的步骤。
图4示出了本申请一实施例提供的计算机设备的具体结构框图,一种计算机设备100包括:一个或多个处理器101、存储器102、以及一个或多个计算机程序,其中处理器101和存储器102通过总线连接,一个或多个计算机程序被存储在存储器102中,并且被配置成由一个或多个处理器101执行,处理器101执行计算机程序时实现如本申请如上所述实施例提供的区间分级检索的方法的步骤。
计算机设备可以是台式计算机、移动终端等,移动终端包括手机、平板电脑、笔记本电脑、个人数字助理等。
本申请实施例的区间分级检索方法,设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,将映射表内的内容按顺序存储在存储节点内,每个存储节点包括预设成员数量的数值对应的内容,每个一级索引节点对应设置一个存储节点作为成员,一级索引节点的数值范围即为其对应的存储节点存储的内容对应的数值范围,每个二级索引节点按顺序设置成员数量的一级索引节点作为其成员,二级索引节点的数值范围为其对应的所有一级索引节点对应的总数值范围。检索时,先在二级索引节点检索获得待检索数值所在的一级索引节点编号;然后根据一级索引节点编号在其对应的存储节点获得待检索数值的内容。
本申请实施例的区间分级检索方法,通过将映射表的内容存储在各存储节点内,并设置两级索引节点,因存储节点和两级索引节点均标识有对应的数值范围,因而检索时,只需在二级索引节点检索出待检索数值在哪个一级索引节点的数值范围内,由该一级索引节点数值范围获得一级索引节点编号,因一级索引节点和存储节点一一对应且编号一致,所以根据一级索引节点编号即获得其对应的存储节点编号,最后在该编号的存储节点获得待检索数值的内容。本申请实施例的区间分级检索方法根据待检索数值检索映射表的内容的效率非常高,检索速度快,不需要如现有技术那样从头到尾地检索,占用较少的系统资源,系统资源利用率高。
应该理解的是,本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、双数据率SDRAM (DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种区间分级检索的方法,用于对映射表的检索,所述映射表包含递增排列的数值和所述数值对应的内容,其特征在于,包括:
设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,设置每个所述存储节点和所述二级索引节点包含的成员数量;
将所述映射表内的内容按所述成员数量按顺序存储在所述存储节点内,对所述存储节点按顺序编号,并标识每个所述存储节点存储的内容对应的数值范围;
每个所述一级索引节点对应设置一个所述存储节点作为成员,按顺序对所述一级索引节点编号,所述一级索引节点的数值范围标识为与其对应的所述存储节点的数值范围;
每个所述二级索引节点按顺序设置所述成员数量的所述一级索引节点作为其成员,所述二级索引节点按顺序编号,并标识每个所述二级索引节点的数值范围,所述二级索引节点的数值范围为其对应的所有所述一级索引节点对应的总数值范围;
获取待检索数值;
在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号;
根据所述一级索引节点编号在其对应的所述存储节点获得所述待检索数值的内容;
所述设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,设置每个所述存储节点和所述二级索引节点包含的成员数量的步骤之后还包括:设置所述远程字典服务的所述索引节点的预设级数;
所述设置每个所述存储节点和所述二级索引节点包含的成员数量具体为:设置每个所述存储节点和所述二级索引节点及以上索引节点包含的成员数量;
所述获取待检索数值的步骤之前还包括:判断已创建的索引节点级数是否等于所述预设级数,如果是,不做处理;如果否,创建新的上层索引节点,每个所述新的上层索引节点按顺序设置所述成员数量的原最上层索引节点作为其成员,所述新的上层索引节点按顺序编号,并标识每个所述新的上层索引节点的数值范围,所述新的上层索引节点的数值范围为其对应的所有所述原最上层索引节点对应的总数值范围;
所述获取待检索数值的步骤之后还包括:从最上层索引节点开始检索获得所述待检索数值所在的下一层索引节点的编号,直至获得所述待检索数值所在的所述二级索引节点编号。
2.如权利要求1所述的区间分级检索的方法,其特征在于,所述最上层索引节点的数目为一个。
3.如权利要求2所述的区间分级检索的方法,其特征在于,所述在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号具体为:
按顺序判断所述待检索数值是否在所述二级索引节点对应的各所述一级索引节点的数值范围内,如果是,返回所述一级索引节点编号;如果否,检索失败。
4.如权利要求3所述的区间分级检索的方法,其特征在于,
所述在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号具体为:用返回有序集合中指定分数区间的成员列表的方法在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号;
所述从最上层索引节点开始检索获得所述待检索数值所在的下一层索引节点的编号具体为:所述从最上层索引节点开始用返回有序集合中指定分数区间的成员列表的方法检索获得所述待检索数值所在的下一层索引节点的编号;
所述根据所述一级索引节点编号在其对应的所述存储节点获得所述待检索数值的内容具体为:所述根据所述一级索引节点编号在其对应的所述存储节点用获取键值方法获得所述待检索数值的内容。
5.如权利要求4所述的区间分级检索的方法,其特征在于,所述映射表为应用程序的符号表;所述符号表包含递增排列的行号数值和所述行号数值对应的原代码;所述待检索数值为堆栈偏移量;
所述获取待检索数值具体为:在应用程序堆栈内获取所述应用程序崩溃时的所述堆栈偏移量。
6.如权利要求5所述的区间分级检索的方法,其特征在于,所述获取待检索数值的步骤之前还包括:
生成所述存储节点和各索引节点的生存时间值;
所述生存时间值包括创建时间和预设删除时间;
所述生成所述存储节点和各索引节点的生存时间值的步骤之后还包括:
判断当前系统时间是否等于所述预设删除时间:如果否,不做处理;如果是,删除所述所述存储节点和各索引节点。
7.一种区间分级检索装置,用于对映射表的检索,所述映射表包含递增排列的数值和所述数值对应的内容,其特征在于,包括:
初始设置模块,用于设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,设置每个所述存储节点和所述二级索引节点包含的成员数量;
存储节点模块,用于将所述映射表内的内容按所述成员数量按顺序存储在所述存储节点内,对所述存储节点按顺序编号,并标识每个所述存储节点存储的内容对应的数值范围;
一级节点模块,用于每个所述一级索引节点对应设置一个所述存储节点作为成员,按顺序对所述一级索引节点编号,所述一级索引节点的数值范围标识为与其对应的所述存储节点的数值范围;
二级节点模块,用于每个所述二级索引节点按顺序设置所述成员数量的所述一级索引节点作为其成员,所述二级索引节点按顺序编号,并标识每个所述二级索引节点的数值范围,所述二级索引节点的数值范围为其对应的所有所述一级索引节点对应的总数值范围;
数值获取模块,用于获取待检索数值;
检索编号模块,用于在所述二级索引节点检索获得所述待检索数值所在的所述一级索引节点编号;
内容获取模块,用于根据所述一级索引节点编号在其对应的所述存储节点获得所述待检索数值的内容;
所述设置包含若干存储节点和两级索引节点的远程字典服务,两级所述索引节点包括若干一级索引节点和若干二级索引节点,设置每个所述存储节点和所述二级索引节点包含的成员数量的步骤之后还包括:设置所述远程字典服务的所述索引节点的预设级数;
所述设置每个所述存储节点和所述二级索引节点包含的成员数量具体为:设置每个所述存储节点和所述二级索引节点及以上索引节点包含的成员数量;
所述获取待检索数值的步骤之前还包括:判断已创建的索引节点级数是否等于所述预设级数,如果是,不做处理;如果否,创建新的上层索引节点,每个所述新的上层索引节点按顺序设置所述成员数量的原最上层索引节点作为其成员,所述新的上层索引节点按顺序编号,并标识每个所述新的上层索引节点的数值范围,所述新的上层索引节点的数值范围为其对应的所有所述原最上层索引节点对应的总数值范围;
所述获取待检索数值的步骤之后还包括:从最上层索引节点开始检索获得所述待检索数值所在的下一层索引节点的编号,直至获得所述待检索数值所在的所述二级索引节点编号。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的区间分级检索的方法的步骤。
9.一种计算机设备,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的区间分级检索的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310524110.7A CN116244477B (zh) | 2023-05-11 | 2023-05-11 | 区间分级检索方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310524110.7A CN116244477B (zh) | 2023-05-11 | 2023-05-11 | 区间分级检索方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116244477A CN116244477A (zh) | 2023-06-09 |
CN116244477B true CN116244477B (zh) | 2023-07-04 |
Family
ID=86626335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310524110.7A Active CN116244477B (zh) | 2023-05-11 | 2023-05-11 | 区间分级检索方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116244477B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1990000837A1 (en) * | 1988-07-05 | 1990-01-25 | British Telecommunications Public Limited Company | Method and apparatus for encoding, decoding and transmitting data in compressed form |
CN104951565A (zh) * | 2015-07-10 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种基于内存数据库的xml配置维护方法及系统 |
CN106875309A (zh) * | 2017-04-01 | 2017-06-20 | 福建云课堂教育科技有限公司 | 一种课程推荐方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589212B2 (en) * | 2011-07-27 | 2013-11-19 | Vauto, Inc. | Vehicle desirability and stocking based on live markets |
JP5931661B2 (ja) * | 2012-09-14 | 2016-06-08 | 本田技研工業株式会社 | 音源方向推定装置、音源方向推定方法、及び音源方向推定プログラム |
-
2023
- 2023-05-11 CN CN202310524110.7A patent/CN116244477B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1990000837A1 (en) * | 1988-07-05 | 1990-01-25 | British Telecommunications Public Limited Company | Method and apparatus for encoding, decoding and transmitting data in compressed form |
CN104951565A (zh) * | 2015-07-10 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种基于内存数据库的xml配置维护方法及系统 |
CN106875309A (zh) * | 2017-04-01 | 2017-06-20 | 福建云课堂教育科技有限公司 | 一种课程推荐方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116244477A (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255958B (zh) | 数据查询方法、装置和存储介质 | |
CN110413611B (zh) | 数据存储、查询方法及装置 | |
US20180307428A1 (en) | Data storage method, electronic device, and computer non-volatile storage medium | |
CN107491487B (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
US20070124277A1 (en) | Index and Method for Extending and Querying Index | |
US20100082545A1 (en) | Compression of sorted value indexes using common prefixes | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
CN104572920A (zh) | 一种数据整理方法和装置 | |
CN115576899B (zh) | 构建索引的方法和装置以及文件查找方法和装置 | |
US9684677B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
US20110153677A1 (en) | Apparatus and method for managing index information of high-dimensional data | |
CN116089620A (zh) | 一种电子档案数据管理方法和系统 | |
CN104809234A (zh) | 浏览器书签的处理方法及终端 | |
CN116244477B (zh) | 区间分级检索方法、装置、计算机设备及存储介质 | |
CN116680278B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113468209A (zh) | 一种电网监控系统高速内存数据库访问方法 | |
JP5646775B2 (ja) | key−valueストア方式を有するメモリシステム | |
CN110781101A (zh) | 一种一对多映射关系的存储方法、装置、电子设备及介质 | |
JP2017021857A (ja) | メモリシステムのローカルコントローラ | |
CN103177026A (zh) | 数据管理方法和数据管理系统 | |
CN114185934B (zh) | 一种基于天盾数据库列存储的索引及查询方法及系统 | |
CN115794861A (zh) | 基于特征摘要的离线数据查询复用方法及其应用 | |
Sahni | Tries | |
CN112015791B (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN114443625A (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 |