CN113127490B - 一种键名称生成方法、装置和计算机可读存储介质 - Google Patents
一种键名称生成方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113127490B CN113127490B CN202110441196.8A CN202110441196A CN113127490B CN 113127490 B CN113127490 B CN 113127490B CN 202110441196 A CN202110441196 A CN 202110441196A CN 113127490 B CN113127490 B CN 113127490B
- Authority
- CN
- China
- Prior art keywords
- information
- member structure
- structure information
- target member
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 5
- 238000000547 structure data Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Abstract
本申请实施例公开了一种键名称生成方法、装置和介质,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组。
Description
技术领域
本申请涉及数据读写技术领域,特别是涉及一种键名称生成方法、装置和计算机可读存储介质。
背景技术
Redis数据库作为一种高性能的键值对类型的数据库,目前已经广泛应用于各种各样的嵌入式系统中。Redis数据库存取速度快,应用便捷,而且自带互斥机制,每个存取操作都属于原子性操作,确保了存取数据的同步和完整性。而且对外提供了各种各样的编程语言接口,操作方便,易于编程。
因redis数据库为键值对类型的数据库,因此针对存取数据所属键的定义和描述显得尤其重要。目前实现redis数据库键描述的方法如下:将redis存储的键描述定义在头文件中,当需要针对redis数据库进行数据存取的时候,则临时根据头文件中键的定义组合成自己需要的键描述,然后直接连接redis数据库,发送命令完成数据的存取操作,然后断开与redis数据库的连接。
但是这种操作方式存在如下不足之处:将redis数据库作为系统中不同进程之间的通信方式时,由于不同进程需要存取的数据结构千差万别,因此定义的键也多种多样,不具备统一性。并且当需要针对某个数据结构进行存取的时候,则需要了解到针对这个数据结构的所有成员的键的组合,这无疑增加了开发的难度和工作量。
可见,如何实现键名称的统一化管理,使得redis数据库的访问变得简单易行,是本领域技术人员需要解决的问题。
发明内容
本申请实施例的目的是提供一种键名称生成方法、装置和计算机可读存储介质,可以实现键名称的统一化管理,使得redis数据库的访问变得简单易行。
为解决上述技术问题,本申请实施例提供一种键名称生成方法,包括:
按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;
当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;
基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息,将所述键描述信息作为所述数据的键名称。
可选地,所述按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库包括:
按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;
依据所述结构信息中包含的成员类别,对所述信息结构进行划分,以得到每种成员类别对应的成员结构信息。
可选地,所述基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息包括:
判断所述目标成员结构信息中是否包含有结构体数组标识;
若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;
将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;
若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;并将目标成员子结构信息作为键描述信息;
若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。
可选地,还包括:
当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及所述结构扩充指令中携带的成员类别,构建成员结构信息表;
将所述成员结构信息表添加至所述成员结构库。
可选地,还包括:
当获取到携带有目标成员信息的添加指令时,向所述成员结构库中各成员类别对应的成员结构信息添加所述目标成员信息。
可选地,还包括:
当获取到携带有目标成员信息的删除指令时,删除所述成员结构库中各成员类别对应的成员结构信息中包含的所述目标成员信息。
可选地,还包括:
将所述数据的键名称存储至预设缓存区,以便于依据所述缓存区存储的键名称从redis数据库中获取相应的数据。
本申请实施例还提供了一种键名称生成装置,包括构建单元、匹配单元、获取单元和作为单元;
所述构建单元,用于按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;
所述匹配单元,用于当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;
所述获取单元,用于基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息;
所述作为单元,用于将所述键描述信息作为所述数据的键名称。
可选地,所述构建单元包括设置子单元和划分子单元;
所述设置子单元,用于按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;
所述划分子单元,用于依据所述结构信息中包含的成员类别,对所述信息结构进行划分,以得到每种成员类别对应的成员结构信息。
可选地,所述获取单元包括第一判断子单元、填充子单元、第二判断子单元、拆分处理子单元、第一作为子单元和第二作为子单元;
所述第一判断子单元,用于判断所述目标成员结构信息中是否包含有结构体数组标识;
所述填充子单元,用于若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;
所述第二判断子单元,用于将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;
所述拆分处理子单元,用于若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;
所述第一作为子单元,用于将目标成员子结构信息作为键描述信息;
所述第二作为子单元,用于若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。
可选地,还包括扩充单元;
所述构建单元,用于当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及所述结构扩充指令中携带的成员类别,构建成员结构信息表;
所述扩充单元,用于将所述成员结构信息表添加至所述成员结构库。
可选地,还包括添加单元;
所述添加单元,用于当获取到携带有目标成员信息的添加指令时,向所述成员结构库中各成员类别对应的成员结构信息添加所述目标成员信息。
可选地,还包括删除单元;
所述删除单元,用于当获取到携带有目标成员信息的删除指令时,删除所述成员结构库中各成员类别对应的成员结构信息中包含的所述目标成员信息。
可选地,还包括存储单元;
所述存储单元,用于将所述数据的键名称存储至预设缓存区,以便于依据所述缓存区存储的键名称从redis数据库中获取相应的数据。
本申请实施例还提供了一种键名称生成装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述意一项所述键名称生成方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述键名称生成方法的步骤。
由上述技术方案可以看出,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。数据结构模板可以按照各部件的通用结构设置。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组的任何元素或元素范围的成员,使得redis数据库的访问变得简单易行。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种键名称生成方法的流程图;
图2为本申请实施例提供的一种键名称生成装置的结构示意图;
图3为本申请实施例提供的一种键名称生成装置的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
接下来,详细介绍本申请实施例所提供的一种键名称生成方法。图1为本申请实施例提供的一种键名称生成方法的流程图,该方法包括:
S101:按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库。
其中,成员结构库中包含有每个成员类别对应的成员结构信息。
数据结构模板可以按照各部件的通用结构设置,例如,数据结构模板可以包括七部分内容,分别为成员标记(ParamSelect)、成员的键描述(KeyFormatStr)、成员数据类型(DataType)、成员占有的字节数(MemberByteNum)、成员元素个数(MemberArrayNum)、成员的起始参数(BelongMemberStart)和成员的终止参数(BelongMemberEnd)。
通用数据结构的定义如下所示:
成员类别可以是所需获取的数据内容,以电源模块(Power Supply Unit,PSU)为例,其包含的成员类别可以划分为四类,分别为获取整个结构体的信息、获取Index信息、获取SUBPSU信息以及获取STATUSWORD信息。成员标记可以用于区分不同的成员类别。
在本申请实施例中,可以按照设定的数据结构模板,对每种类型的部件设置对应的结构信息。由于数据结构模板为通用模板,因此,各部件对应的结构信息的类型相同,只是每种类型下结构信息的具体内容存在差异。
每个部件的结构信息的处理方式类似,以一个部件的结构信息为例,可以依据结构信息中包含的成员类别,对信息结构进行划分,以得到每种成员类别对应的成员结构信息。
在实际应用中,可以将每个部件对应的成员结构信息以列表的形式记录。
以如下的PSU信息结构体为例(前缀为PSU):
表1为PSU的成员结构信息列表,表1
表1中是以4种成员为例,在实际应用中,可以将上述表1中每个成员对应的成员结构信息组合成一个Table,以便于递归函数调用不同的Table实现键描述的处理。
以表1中获取整个结构体的信息为例,其对应的Table如下:
REDIS_DATA_INFO_DESC stPSUInfoTbl[]=
{
{REDIS_PARAM_PSUINFO,
“PSU:PSU_INFO%d”,
REDIS_DATA_TYPE_STRUCT_ARRAY,
sizeof(PSU_INFO)*MAX_PSU_NUM,
MAX_PSU_NUM,
REDIS_PARAM_PSUINFO_PSUINDEX,
REDIS_PARAM_PSUINFO_SUBPSUINFO},
{…}
}
S102:当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。
数据标识可以用于表征所需获取的数据,数据标识可以包括部件类型以及成员类别。基于数据标识可以从成员结构库中查询到匹配的成员结构信息,为了便于区分,可以将与数据标识匹配的成员结构信息称作目标成员结构信息。
S103:基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。
在本申请实施例中,可以编写递归调用函数处理目标成员结构信息。
目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。
在实际应用中,可以判断目标成员结构信息中是否包含有结构体数组标识。
在数据的读取指令中可以包含成员序号,若存在包含结构体数组标识的第一目标成员结构信息,可以基于成员序号对第一目标成员结构信息进行填充。
结合表1中序号为2的内容可知,当成员属于可拆分的数组时,其对应的键描述包含有“%d”,在本申请实施例中,对第一目标成员结构信息进行填充主要是将“%d”替换为“成员序号”。
将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断第二目标成员结构信息是否依赖于其它成员结构信息。
若第二目标成员结构信息依赖于其它成员结构信息,则说明第二目标成员结构信息属于数组信息,其还可以进一步拆分,此时可以基于目标成员结构信息中包含的起始参数和终止参数,对目标成员结构信息进行拆分处理,以获取目标成员子结构信息;并将目标成员子结构信息作为键描述信息。若第二目标成员结构信息不依赖于其它成员结构信息,则将第二目标成员结构信息作为键描述信息。
在实际应用中,可以根据BelongMemberStart和BelongMemberEnd循环遍历每个成员,针对键描述字符串则采用每个成员中KeyFormatStr拆分得到的最后一个字段填充。
在本申请实施例中,可以在得到数据的键名称之后,根据该键名称直接从redis数据库中获取相应的数据。也可以在得到数据的键名称之后,将数据的键名称存储至预设缓存区,以便于依据缓存区存储的键名称从redis数据库中获取相应的数据。通过将键名称存储至缓存区,可以实现对多个键名称的批量化处理。
由上述技术方案可以看出,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。数据结构模板可以按照各部件的通用结构设置。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组的任何元素或元素范围的成员,使得redis数据库的访问变得简单易行。
在本申请实施例中,可以根据实际需求对成员结构库进行扩充,当需要新增一个结构体的时候,用户可以向系统输入结构扩充指令,系统获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及结构扩充指令中携带的成员类别,可以构建成员结构信息表;将成员结构信息表添加至成员结构库。
构件成员结构信息表的过程可以参见S101的介绍,在此不再赘述。
除了对成员结构库扩充之外,也可以对已有的成员结构信息进行成员信息的添加或删除。
在实际应用中,当系统获取到携带有目标成员信息的添加指令时,可以向成员结构库中各成员类别对应的成员结构信息添加目标成员信息。当系统获取到携带有目标成员信息的删除指令时,可以删除成员结构库中各成员类别对应的成员结构信息中包含的目标成员信息。
在本申请实施例中当新增一个结构体的时候,仅需要对应新增一个与该结构体相关的成员结构信息表即可,无需编写任何代码,提高了代码的复用。当需要在已有的结构体中扩充一个成员信息的时候,仅需要在成员结构库各成员类别对应的成员结构信息中添加一条记录即可。当需要在已有的结构体中删除一个成员的时候,仅需要在成员结构库中各成员类别对应的成员结构信息删除一条记录即可。
图2为本申请实施例提供的一种键名称生成装置的结构示意图,包括构建单元21、匹配单元22、获取单元23和作为单元24;
构建单元21,用于按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息;
匹配单元22,用于当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息;
获取单元23,用于基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息;
作为单元24,用于将键描述信息作为数据的键名称。
可选地,构建单元包括设置子单元和划分子单元;
设置子单元,用于按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;
划分子单元,用于依据结构信息中包含的成员类别,对信息结构进行划分,以得到每种成员类别对应的成员结构信息。
可选地,获取单元包括第一判断子单元、填充子单元、第二判断子单元、拆分处理子单元、第一作为子单元和第二作为子单元;
第一判断子单元,用于判断目标成员结构信息中是否包含有结构体数组标识;
填充子单元,用于若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对第一目标成员结构信息进行填充;
第二判断子单元,用于将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断第二目标成员结构信息是否依赖于其它成员结构信息;
拆分处理子单元,用于若第二目标成员结构信息依赖于其它成员结构信息,则基于目标成员结构信息中包含的起始参数和终止参数,对目标成员结构信息进行拆分处理,以获取目标成员子结构信息;
第一作为子单元,用于将目标成员子结构信息作为键描述信息;
第二作为子单元,用于若第二目标成员结构信息不依赖于其它成员结构信息,则将第二目标成员结构信息作为键描述信息。
可选地,还包括扩充单元;
构建单元,用于当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及结构扩充指令中携带的成员类别,构建成员结构信息表;
扩充单元,用于将成员结构信息表添加至成员结构库。
可选地,还包括添加单元;
添加单元,用于当获取到携带有目标成员信息的添加指令时,向成员结构库中各成员类别对应的成员结构信息添加目标成员信息。
可选地,还包括删除单元;
删除单元,用于当获取到携带有目标成员信息的删除指令时,删除成员结构库中各成员类别对应的成员结构信息中包含的目标成员信息。
可选地,还包括存储单元;
存储单元,用于将数据的键名称存储至预设缓存区,以便于依据缓存区存储的键名称从redis数据库中获取相应的数据。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。数据结构模板可以按照各部件的通用结构设置。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组的任何元素或元素范围的成员,使得redis数据库的访问变得简单易行。
图3为本申请实施例提供的一种键名称生成装置30的硬件结构示意图,包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序以实现如上述任意一项键名称生成方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项键名称生成方法的步骤。
以上对本申请实施例所提供的一种键名称生成方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (9)
1.一种键名称生成方法,其特征在于,包括:
按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;
当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;
基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息,将所述键描述信息作为所述数据的键名称;
所述基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息包括:
判断所述目标成员结构信息中是否包含有结构体数组标识;
若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;
将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;
若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;并将目标成员子结构信息作为键描述信息;
若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。
2.根据权利要求1所述的键名称生成方法,其特征在于,所述按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库包括:
按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;
依据所述结构信息中包含的成员类别,对所述信息结构进行划分,以得到每种成员类别对应的成员结构信息。
3.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:
当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及所述结构扩充指令中携带的成员类别,构建成员结构信息表;
将所述成员结构信息表添加至所述成员结构库。
4.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:
当获取到携带有目标成员信息的添加指令时,向所述成员结构库中各成员类别对应的成员结构信息添加所述目标成员信息。
5.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:
当获取到携带有目标成员信息的删除指令时,删除所述成员结构库中各成员类别对应的成员结构信息中包含的所述目标成员信息。
6.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:
将所述数据的键名称存储至预设缓存区,以便于依据所述缓存区存储的键名称从redis数据库中获取相应的数据。
7.一种键名称生成装置,其特征在于,包括构建单元、匹配单元、获取单元和作为单元;
所述构建单元,用于按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;
所述匹配单元,用于当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;
所述获取单元,用于基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息;
所述作为单元,用于将所述键描述信息作为所述数据的键名称;
所述获取单元包括第一判断子单元、填充子单元、第二判断子单元、拆分处理子单元、第一作为子单元和第二作为子单元;所述第一判断子单元,用于判断所述目标成员结构信息中是否包含有结构体数组标识;所述填充子单元,用于若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;所述第二判断子单元,用于将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;所述拆分处理子单元,用于若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;所述第一作为子单元,用于将目标成员子结构信息作为键描述信息;所述第二作为子单元,用于若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。
8.一种键名称生成装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至6任意一项所述键名称生成方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述键名称生成方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110441196.8A CN113127490B (zh) | 2021-04-23 | 2021-04-23 | 一种键名称生成方法、装置和计算机可读存储介质 |
PCT/CN2022/088578 WO2022223038A1 (zh) | 2021-04-23 | 2022-04-22 | 一种键名称生成方法、装置和计算机可读存储介质 |
US18/270,113 US11941032B2 (en) | 2021-04-23 | 2022-04-22 | Key name generation method and apparatus and non-transitory computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110441196.8A CN113127490B (zh) | 2021-04-23 | 2021-04-23 | 一种键名称生成方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127490A CN113127490A (zh) | 2021-07-16 |
CN113127490B true CN113127490B (zh) | 2023-02-24 |
Family
ID=76779551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110441196.8A Active CN113127490B (zh) | 2021-04-23 | 2021-04-23 | 一种键名称生成方法、装置和计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11941032B2 (zh) |
CN (1) | CN113127490B (zh) |
WO (1) | WO2022223038A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127490B (zh) | 2021-04-23 | 2023-02-24 | 山东英信计算机技术有限公司 | 一种键名称生成方法、装置和计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001057725A2 (en) * | 2000-02-03 | 2001-08-09 | Navigateone Limited | System and method for database searching |
CN108681589A (zh) * | 2018-05-15 | 2018-10-19 | 口碑(上海)信息技术有限公司 | 基于指标体系的结构化查询语言指令生成方法及装置 |
CN111291024A (zh) * | 2020-02-19 | 2020-06-16 | 京东方科技集团股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111367584A (zh) * | 2020-03-12 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种电源适配方法、装置和计算机可读存储介质 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060294088A1 (en) * | 2005-06-27 | 2006-12-28 | International Business Machines Corporation | Method, system, and computer program product for caching dynamically generated queries |
US9436710B2 (en) * | 2010-09-28 | 2016-09-06 | Redis Labs Ltd. | Systems, methods, and media for managing an in-memory NoSQL database |
US9378263B2 (en) * | 2012-06-19 | 2016-06-28 | Salesforce.Com, Inc. | Method and system for creating indices and loading key-value pairs for NoSQL databases |
US8904047B1 (en) * | 2012-06-29 | 2014-12-02 | Emc Corporation | Cloud capable storage system with high perormance nosql key-value pair operating environment |
US20140214897A1 (en) * | 2013-01-31 | 2014-07-31 | Yuankai Zhu | SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS |
CN104794123B (zh) * | 2014-01-20 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
CN105630803B (zh) * | 2014-10-30 | 2019-07-05 | 国际商业机器公司 | 文档型数据库建立索引的方法和装置 |
US10255378B2 (en) | 2015-03-18 | 2019-04-09 | Adp, Llc | Database structure for distributed key-value pair, document and graph models |
US9798752B1 (en) * | 2015-05-22 | 2017-10-24 | State Farm Mutual Automobile Insurance Company | Systems and methods for ingesting relational data into a delimited column qualifier NoSQL database |
CN106682004A (zh) * | 2015-11-06 | 2017-05-17 | 网宿科技股份有限公司 | 一种Redis Key管理方法及系统 |
US10970311B2 (en) * | 2015-12-07 | 2021-04-06 | International Business Machines Corporation | Scalable snapshot isolation on non-transactional NoSQL |
US9607063B1 (en) * | 2015-12-10 | 2017-03-28 | International Business Machines Corporation | NoSQL relational database (RDB) data movement |
US10394775B2 (en) * | 2015-12-28 | 2019-08-27 | International Business Machines Corporation | Order constraint for transaction processing with snapshot isolation on non-transactional NoSQL servers |
US11615068B2 (en) * | 2016-06-08 | 2023-03-28 | Brian J. Bulkowski | Methods and systems of managing deletes in a database node of a NoSQL database |
US10248668B2 (en) * | 2016-07-18 | 2019-04-02 | International Business Machines Corporation | Mapping database structure to software |
US10318521B2 (en) * | 2016-11-29 | 2019-06-11 | International Business Machines Corporation | Query processing with bounded staleness for transactional mutations in NoSQL database |
US10614236B2 (en) * | 2017-03-01 | 2020-04-07 | International Business Machines Corporation | Self-contained consistent data masking |
CN106997378B (zh) * | 2017-03-13 | 2020-05-15 | 上海摩库数据技术有限公司 | 基于Redis的数据库数据聚合同步的方法 |
US11016932B2 (en) * | 2017-09-21 | 2021-05-25 | Alibaba Group Holding Limited | Systems, methods, and apparatuses for simplifying filesystem operations utilizing a key-value storage system |
US10956279B2 (en) * | 2017-12-04 | 2021-03-23 | International Business Machines Corporation | Managing big data on document based NoSQL databases |
US10838964B2 (en) * | 2018-03-30 | 2020-11-17 | International Business Machines Corporation | Supporting a join operation against multiple NoSQL databases |
US20210385187A1 (en) * | 2018-10-15 | 2021-12-09 | Huawei Technologies Co., Ltd. | Method and device for performing domain name resolution by sending key value to grs server |
US10445322B1 (en) * | 2018-11-29 | 2019-10-15 | Capital One Services, Llc | Real-time processing of event-based streaming with NoSQL |
US11138194B2 (en) * | 2019-04-02 | 2021-10-05 | International Business Machines Corporation | Method of extracting relationships from a NoSQL database |
US10901819B1 (en) * | 2019-08-11 | 2021-01-26 | Paypal, Inc. | Distributed queueing over a Redis cluster |
CN110659282B (zh) * | 2019-08-14 | 2023-09-15 | 中国平安财产保险股份有限公司 | 数据路由的构建方法、装置、计算机设备和存储介质 |
US20210149865A1 (en) * | 2019-11-18 | 2021-05-20 | International Business Machines Corporation | SEAMLESSLY MIGRATING DATA AND INDEX IN DISTRIBUTED NoSQL DATABASE SYSTEMS |
CN111797073A (zh) * | 2019-11-26 | 2020-10-20 | 北京京东尚科信息技术有限公司 | 数据库管理方法、电子设备与计算机可读存储介质 |
CN111506559B (zh) * | 2020-04-21 | 2024-04-05 | 北京同邦卓益科技有限公司 | 数据存储方法、装置、电子设备及存储介质 |
US11663177B2 (en) * | 2020-05-04 | 2023-05-30 | International Business Machines Corporation | Systems and methods for extracting data in column-based not only structured query language (NoSQL) databases |
CN111930642A (zh) * | 2020-10-14 | 2020-11-13 | 北京精准沟通传媒科技股份有限公司 | 缓存管理方法、电子设备以及缓存管理装置 |
US11308058B1 (en) * | 2021-01-04 | 2022-04-19 | International Business Machines Corporation | Building and using combined multi-type sub-indices to search NoSQL databases |
US11546307B2 (en) * | 2021-04-20 | 2023-01-03 | Sap Se | Method to implement multi-tenant/shared Redis cluster using envoy |
CN113127490B (zh) * | 2021-04-23 | 2023-02-24 | 山东英信计算机技术有限公司 | 一种键名称生成方法、装置和计算机可读存储介质 |
-
2021
- 2021-04-23 CN CN202110441196.8A patent/CN113127490B/zh active Active
-
2022
- 2022-04-22 US US18/270,113 patent/US11941032B2/en active Active
- 2022-04-22 WO PCT/CN2022/088578 patent/WO2022223038A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001057725A2 (en) * | 2000-02-03 | 2001-08-09 | Navigateone Limited | System and method for database searching |
CN108681589A (zh) * | 2018-05-15 | 2018-10-19 | 口碑(上海)信息技术有限公司 | 基于指标体系的结构化查询语言指令生成方法及装置 |
CN111291024A (zh) * | 2020-02-19 | 2020-06-16 | 京东方科技集团股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111367584A (zh) * | 2020-03-12 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种电源适配方法、装置和计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于GIS的农产品指标数据库表结构设计研究;张崇;《计算机工程与设计》;20110116(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113127490A (zh) | 2021-07-16 |
WO2022223038A1 (zh) | 2022-10-27 |
US20240045888A1 (en) | 2024-02-08 |
US11941032B2 (en) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205577B (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
EP3113043A1 (en) | Method, device and host for updating metadata stored in columns in distributed file system | |
CN105373541A (zh) | 数据库的数据操作请求的处理方法和系统 | |
CN109308296A (zh) | 一种业务数据表的生成方法、装置和计算机可读存储介质 | |
US20030041069A1 (en) | System and method for managing bi-directional relationships between objects | |
CN111177144B (zh) | 表同步方法、装置、设备、存储介质及系统 | |
CN117238433B (zh) | 基于LibreOffice进行文档数据自动隔离的方法 | |
CN113127490B (zh) | 一种键名称生成方法、装置和计算机可读存储介质 | |
CN111125229A (zh) | 数据血缘生成方法、装置、电子设备 | |
CN113434482A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
WO2019161620A1 (zh) | 应用依赖关系更新方法、终端、设备及存储介质 | |
CN110275889B (zh) | 一种适用于机器学习的特征处理方法及装置 | |
CN111090803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN108038253B (zh) | 一种日志查询的处理方法及装置 | |
CN111046106A (zh) | 缓存数据同步方法、装置、设备及介质 | |
CN105740131B (zh) | 软件用户行为回退处理方法及装置 | |
CN106372121B (zh) | 服务器及数据处理方法 | |
CN113076086B (zh) | 元数据管理系统和使用其对模型对象进行建模的方法 | |
CN111259003B (zh) | 一种数据库建立方法及装置 | |
CN110688387A (zh) | 一种数据处理方法及装置 | |
CN117112574B (zh) | 树形业务数据构建方法、装置、计算机设备及存储介质 | |
CN105095015B (zh) | 一种磁盘快照的建立方法及装置 | |
CN108984793A (zh) | 一种数据更新方法及系统、存储介质 | |
CN111611258B (zh) | 流数据的恢复方法和存储设备 | |
CN107908727B (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 |