一种键名称生成方法、装置和计算机可读存储介质转让专利

申请号 : CN202110441196.8

文献号 : CN113127490B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 候志立

申请人 : 山东英信计算机技术有限公司

摘要 :

本申请实施例公开了一种键名称生成方法、装置和介质,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组。

权利要求 :

1.一种键名称生成方法,其特征在于,包括:

按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;

当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;

基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息,将所述键描述信息作为所述数据的键名称;

所述基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息包括:判断所述目标成员结构信息中是否包含有结构体数组标识;

若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;

将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;

若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;并将目标成员子结构信息作为键描述信息;

若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。

2.根据权利要求1所述的键名称生成方法,其特征在于,所述按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库包括:按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;

依据所述结构信息中包含的成员类别,对所述信息结构进行划分,以得到每种成员类别对应的成员结构信息。

3.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及所述结构扩充指令中携带的成员类别,构建成员结构信息表;

将所述成员结构信息表添加至所述成员结构库。

4.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:当获取到携带有目标成员信息的添加指令时,向所述成员结构库中各成员类别对应的成员结构信息添加所述目标成员信息。

5.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:当获取到携带有目标成员信息的删除指令时,删除所述成员结构库中各成员类别对应的成员结构信息中包含的所述目标成员信息。

6.根据权利要求1至2任意一项所述的键名称生成方法,其特征在于,还包括:将所述数据的键名称存储至预设缓存区,以便于依据所述缓存区存储的键名称从redis数据库中获取相应的数据。

7.一种键名称生成装置,其特征在于,包括构建单元、匹配单元、获取单元和作为单元;

所述构建单元,用于按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;

所述匹配单元,用于当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;

所述获取单元,用于基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息;

所述作为单元,用于将所述键描述信息作为所述数据的键名称;

所述获取单元包括第一判断子单元、填充子单元、第二判断子单元、拆分处理子单元、第一作为子单元和第二作为子单元;所述第一判断子单元,用于判断所述目标成员结构信息中是否包含有结构体数组标识;所述填充子单元,用于若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;所述第二判断子单元,用于将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;所述拆分处理子单元,用于若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;所述第一作为子单元,用于将目标成员子结构信息作为键描述信息;所述第二作为子单元,用于若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。

8.一种键名称生成装置,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如权利要求1至6任意一项所述键名称生成方法的步骤。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述键名称生成方法的步骤。

说明书 :

一种键名称生成方法、装置和计算机可读存储介质

技术领域

[0001] 本申请涉及数据读写技术领域,特别是涉及一种键名称生成方法、装置和计算机可读存储介质。

背景技术

[0002] Redis数据库作为一种高性能的键值对类型的数据库,目前已经广泛应用于各种各样的嵌入式系统中。Redis数据库存取速度快,应用便捷,而且自带互斥机制,每个存取操作都属于原子性操作,确保了存取数据的同步和完整性。而且对外提供了各种各样的编程语言接口,操作方便,易于编程。
[0003] 因redis数据库为键值对类型的数据库,因此针对存取数据所属键的定义和描述显得尤其重要。目前实现redis数据库键描述的方法如下:将redis存储的键描述定义在头文件中,当需要针对redis数据库进行数据存取的时候,则临时根据头文件中键的定义组合成自己需要的键描述,然后直接连接redis数据库,发送命令完成数据的存取操作,然后断开与redis数据库的连接。
[0004] 但是这种操作方式存在如下不足之处:将redis数据库作为系统中不同进程之间的通信方式时,由于不同进程需要存取的数据结构千差万别,因此定义的键也多种多样,不具备统一性。并且当需要针对某个数据结构进行存取的时候,则需要了解到针对这个数据结构的所有成员的键的组合,这无疑增加了开发的难度和工作量。
[0005] 可见,如何实现键名称的统一化管理,使得redis数据库的访问变得简单易行,是本领域技术人员需要解决的问题。

发明内容

[0006] 本申请实施例的目的是提供一种键名称生成方法、装置和计算机可读存储介质,可以实现键名称的统一化管理,使得redis数据库的访问变得简单易行。
[0007] 为解决上述技术问题,本申请实施例提供一种键名称生成方法,包括:
[0008] 按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;
[0009] 当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;
[0010] 基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息,将所述键描述信息作为所述数据的键名称。
[0011] 可选地,所述按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库包括:
[0012] 按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;
[0013] 依据所述结构信息中包含的成员类别,对所述信息结构进行划分,以得到每种成员类别对应的成员结构信息。
[0014] 可选地,所述基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息包括:
[0015] 判断所述目标成员结构信息中是否包含有结构体数组标识;
[0016] 若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;
[0017] 将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;
[0018] 若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;并将目标成员子结构信息作为键描述信息;
[0019] 若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。
[0020] 可选地,还包括:
[0021] 当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及所述结构扩充指令中携带的成员类别,构建成员结构信息表;
[0022] 将所述成员结构信息表添加至所述成员结构库。
[0023] 可选地,还包括:
[0024] 当获取到携带有目标成员信息的添加指令时,向所述成员结构库中各成员类别对应的成员结构信息添加所述目标成员信息。
[0025] 可选地,还包括:
[0026] 当获取到携带有目标成员信息的删除指令时,删除所述成员结构库中各成员类别对应的成员结构信息中包含的所述目标成员信息。
[0027] 可选地,还包括:
[0028] 将所述数据的键名称存储至预设缓存区,以便于依据所述缓存区存储的键名称从redis数据库中获取相应的数据。
[0029] 本申请实施例还提供了一种键名称生成装置,包括构建单元、匹配单元、获取单元和作为单元;
[0030] 所述构建单元,用于按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,所述成员结构库中包含有每个成员类别对应的成员结构信息;
[0031] 所述匹配单元,用于当获取到数据的读取指令时,基于所述数据读取指令中携带的数据标识,从所述成员结构库中查询与所述数据标识匹配的目标成员结构信息;
[0032] 所述获取单元,用于基于所述目标成员结构信息及其包含的结构体数组标识,确定出所述目标成员结构信息对应的键描述信息;
[0033] 所述作为单元,用于将所述键描述信息作为所述数据的键名称。
[0034] 可选地,所述构建单元包括设置子单元和划分子单元;
[0035] 所述设置子单元,用于按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;
[0036] 所述划分子单元,用于依据所述结构信息中包含的成员类别,对所述信息结构进行划分,以得到每种成员类别对应的成员结构信息。
[0037] 可选地,所述获取单元包括第一判断子单元、填充子单元、第二判断子单元、拆分处理子单元、第一作为子单元和第二作为子单元;
[0038] 所述第一判断子单元,用于判断所述目标成员结构信息中是否包含有结构体数组标识;
[0039] 所述填充子单元,用于若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对所述第一目标成员结构信息进行填充;
[0040] 所述第二判断子单元,用于将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断所述第二目标成员结构信息是否依赖于其它成员结构信息;
[0041] 所述拆分处理子单元,用于若所述第二目标成员结构信息依赖于其它成员结构信息,则基于所述目标成员结构信息中包含的起始参数和终止参数,对所述目标成员结构信息进行拆分处理,以获取目标成员子结构信息;
[0042] 所述第一作为子单元,用于将目标成员子结构信息作为键描述信息;
[0043] 所述第二作为子单元,用于若所述第二目标成员结构信息不依赖于其它成员结构信息,则将所述第二目标成员结构信息作为键描述信息。
[0044] 可选地,还包括扩充单元;
[0045] 所述构建单元,用于当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及所述结构扩充指令中携带的成员类别,构建成员结构信息表;
[0046] 所述扩充单元,用于将所述成员结构信息表添加至所述成员结构库。
[0047] 可选地,还包括添加单元;
[0048] 所述添加单元,用于当获取到携带有目标成员信息的添加指令时,向所述成员结构库中各成员类别对应的成员结构信息添加所述目标成员信息。
[0049] 可选地,还包括删除单元;
[0050] 所述删除单元,用于当获取到携带有目标成员信息的删除指令时,删除所述成员结构库中各成员类别对应的成员结构信息中包含的所述目标成员信息。
[0051] 可选地,还包括存储单元;
[0052] 所述存储单元,用于将所述数据的键名称存储至预设缓存区,以便于依据所述缓存区存储的键名称从redis数据库中获取相应的数据。
[0053] 本申请实施例还提供了一种键名称生成装置,包括:
[0054] 存储器,用于存储计算机程序;
[0055] 处理器,用于执行所述计算机程序以实现上述意一项所述键名称生成方法的步骤。
[0056] 本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述键名称生成方法的步骤。
[0057] 由上述技术方案可以看出,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。数据结构模板可以按照各部件的通用结构设置。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组的任何元素或元素范围的成员,使得redis数据库的访问变得简单易行。

附图说明

[0058] 为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0059] 图1为本申请实施例提供的一种键名称生成方法的流程图;
[0060] 图2为本申请实施例提供的一种键名称生成装置的结构示意图;
[0061] 图3为本申请实施例提供的一种键名称生成装置的硬件结构示意图。

具体实施方式

[0062] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
[0063] 为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
[0064] 接下来,详细介绍本申请实施例所提供的一种键名称生成方法。图1为本申请实施例提供的一种键名称生成方法的流程图,该方法包括:
[0065] S101:按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库。
[0066] 其中,成员结构库中包含有每个成员类别对应的成员结构信息。
[0067] 数据结构模板可以按照各部件的通用结构设置,例如,数据结构模板可以包括七部分内容,分别为成员标记(ParamSelect)、成员的键描述(KeyFormatStr)、成员数据类型(DataType)、成员占有的字节数(MemberByteNum)、成员元素个数(MemberArrayNum)、成员的起始参数(BelongMemberStart)和成员的终止参数(BelongMemberEnd)。
[0068] 通用数据结构的定义如下所示:
[0069]
[0070] 成员类别可以是所需获取的数据内容,以电源模块(Power Supply Unit,PSU)为例,其包含的成员类别可以划分为四类,分别为获取整个结构体的信息、获取Index信息、获取SUBPSU信息以及获取STATUSWORD信息。成员标记可以用于区分不同的成员类别。
[0071] 在本申请实施例中,可以按照设定的数据结构模板,对每种类型的部件设置对应的结构信息。由于数据结构模板为通用模板,因此,各部件对应的结构信息的类型相同,只是每种类型下结构信息的具体内容存在差异。
[0072] 每个部件的结构信息的处理方式类似,以一个部件的结构信息为例,可以依据结构信息中包含的成员类别,对信息结构进行划分,以得到每种成员类别对应的成员结构信息。
[0073] 在实际应用中,可以将每个部件对应的成员结构信息以列表的形式记录。
[0074] 以如下的PSU信息结构体为例(前缀为PSU):
[0075]
[0076]
[0077] 表1为PSU的成员结构信息列表,表1
[0078]
[0079]
[0080]
[0081]
[0082] 表1中是以4种成员为例,在实际应用中,可以将上述表1中每个成员对应的成员结构信息组合成一个Table,以便于递归函数调用不同的Table实现键描述的处理。
[0083] 以表1中获取整个结构体的信息为例,其对应的Table如下:
[0084] REDIS_DATA_INFO_DESC stPSUInfoTbl[]=
[0085] {
[0086] {REDIS_PARAM_PSUINFO,
[0087] “PSU:PSU_INFO%d”,
[0088] REDIS_DATA_TYPE_STRUCT_ARRAY,
[0089] sizeof(PSU_INFO)*MAX_PSU_NUM,
[0090] MAX_PSU_NUM,
[0091] REDIS_PARAM_PSUINFO_PSUINDEX,
[0092] REDIS_PARAM_PSUINFO_SUBPSUINFO},
[0093] {…}
[0094] }
[0095] S102:当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。
[0096] 数据标识可以用于表征所需获取的数据,数据标识可以包括部件类型以及成员类别。基于数据标识可以从成员结构库中查询到匹配的成员结构信息,为了便于区分,可以将与数据标识匹配的成员结构信息称作目标成员结构信息。
[0097] S103:基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。
[0098] 在本申请实施例中,可以编写递归调用函数处理目标成员结构信息。
[0099] 目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。
[0100] 在实际应用中,可以判断目标成员结构信息中是否包含有结构体数组标识。
[0101] 在数据的读取指令中可以包含成员序号,若存在包含结构体数组标识的第一目标成员结构信息,可以基于成员序号对第一目标成员结构信息进行填充。
[0102] 结合表1中序号为2的内容可知,当成员属于可拆分的数组时,其对应的键描述包含有“%d”,在本申请实施例中,对第一目标成员结构信息进行填充主要是将“%d”替换为“成员序号”。
[0103] 将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断第二目标成员结构信息是否依赖于其它成员结构信息。
[0104] 若第二目标成员结构信息依赖于其它成员结构信息,则说明第二目标成员结构信息属于数组信息,其还可以进一步拆分,此时可以基于目标成员结构信息中包含的起始参数和终止参数,对目标成员结构信息进行拆分处理,以获取目标成员子结构信息;并将目标成员子结构信息作为键描述信息。若第二目标成员结构信息不依赖于其它成员结构信息,则将第二目标成员结构信息作为键描述信息。
[0105] 在实际应用中,可以根据BelongMemberStart和BelongMemberEnd循环遍历每个成员,针对键描述字符串则采用每个成员中KeyFormatStr拆分得到的最后一个字段填充。
[0106] 在本申请实施例中,可以在得到数据的键名称之后,根据该键名称直接从redis数据库中获取相应的数据。也可以在得到数据的键名称之后,将数据的键名称存储至预设缓存区,以便于依据缓存区存储的键名称从redis数据库中获取相应的数据。通过将键名称存储至缓存区,可以实现对多个键名称的批量化处理。
[0107] 由上述技术方案可以看出,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。数据结构模板可以按照各部件的通用结构设置。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组的任何元素或元素范围的成员,使得redis数据库的访问变得简单易行。
[0108] 在本申请实施例中,可以根据实际需求对成员结构库进行扩充,当需要新增一个结构体的时候,用户可以向系统输入结构扩充指令,系统获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及结构扩充指令中携带的成员类别,可以构建成员结构信息表;将成员结构信息表添加至成员结构库。
[0109] 构件成员结构信息表的过程可以参见S101的介绍,在此不再赘述。
[0110] 除了对成员结构库扩充之外,也可以对已有的成员结构信息进行成员信息的添加或删除。
[0111] 在实际应用中,当系统获取到携带有目标成员信息的添加指令时,可以向成员结构库中各成员类别对应的成员结构信息添加目标成员信息。当系统获取到携带有目标成员信息的删除指令时,可以删除成员结构库中各成员类别对应的成员结构信息中包含的目标成员信息。
[0112] 在本申请实施例中当新增一个结构体的时候,仅需要对应新增一个与该结构体相关的成员结构信息表即可,无需编写任何代码,提高了代码的复用。当需要在已有的结构体中扩充一个成员信息的时候,仅需要在成员结构库各成员类别对应的成员结构信息中添加一条记录即可。当需要在已有的结构体中删除一个成员的时候,仅需要在成员结构库中各成员类别对应的成员结构信息删除一条记录即可。
[0113] 图2为本申请实施例提供的一种键名称生成装置的结构示意图,包括构建单元21、匹配单元22、获取单元23和作为单元24;
[0114] 构建单元21,用于按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息;
[0115] 匹配单元22,用于当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息;
[0116] 获取单元23,用于基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息;
[0117] 作为单元24,用于将键描述信息作为数据的键名称。
[0118] 可选地,构建单元包括设置子单元和划分子单元;
[0119] 设置子单元,用于按照设定的数据结构模板,对每种类型的部件设置对应的结构信息;
[0120] 划分子单元,用于依据结构信息中包含的成员类别,对信息结构进行划分,以得到每种成员类别对应的成员结构信息。
[0121] 可选地,获取单元包括第一判断子单元、填充子单元、第二判断子单元、拆分处理子单元、第一作为子单元和第二作为子单元;
[0122] 第一判断子单元,用于判断目标成员结构信息中是否包含有结构体数组标识;
[0123] 填充子单元,用于若存在包含结构体数组标识的第一目标成员结构信息,则基于数据指令中包含的成员序号对第一目标成员结构信息进行填充;
[0124] 第二判断子单元,用于将填充后的第一目标成员结构信息以及不包含结构体数组标识的成员结构信息作为第二目标成员结构信息,判断第二目标成员结构信息是否依赖于其它成员结构信息;
[0125] 拆分处理子单元,用于若第二目标成员结构信息依赖于其它成员结构信息,则基于目标成员结构信息中包含的起始参数和终止参数,对目标成员结构信息进行拆分处理,以获取目标成员子结构信息;
[0126] 第一作为子单元,用于将目标成员子结构信息作为键描述信息;
[0127] 第二作为子单元,用于若第二目标成员结构信息不依赖于其它成员结构信息,则将第二目标成员结构信息作为键描述信息。
[0128] 可选地,还包括扩充单元;
[0129] 构建单元,用于当获取到携带有成员类别和成员信息的结构扩充指令时,按照设定的数据结构模板以及结构扩充指令中携带的成员类别,构建成员结构信息表;
[0130] 扩充单元,用于将成员结构信息表添加至成员结构库。
[0131] 可选地,还包括添加单元;
[0132] 添加单元,用于当获取到携带有目标成员信息的添加指令时,向成员结构库中各成员类别对应的成员结构信息添加目标成员信息。
[0133] 可选地,还包括删除单元;
[0134] 删除单元,用于当获取到携带有目标成员信息的删除指令时,删除成员结构库中各成员类别对应的成员结构信息中包含的目标成员信息。
[0135] 可选地,还包括存储单元;
[0136] 存储单元,用于将数据的键名称存储至预设缓存区,以便于依据缓存区存储的键名称从redis数据库中获取相应的数据。
[0137] 图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
[0138] 由上述技术方案可以看出,按照设定的数据结构模板以及各类部件包含的成员类别,构建成员结构库;其中,成员结构库中包含有每个成员类别对应的成员结构信息。数据结构模板可以按照各部件的通用结构设置。当获取到数据的读取指令时,基于数据读取指令中携带的数据标识,从成员结构库中查询与数据标识匹配的目标成员结构信息。目标成员结构信息是基于数据结构模板统一规划得到的成员结构信息。由于不同部件对应的目标成员结构信息存在差异,构建成员结构库时对于具有拆分需求的成员结构信息可以设置结构体数组标识,在获取到目标成员结构信息之后,可以基于目标成员结构信息及其包含的结构体数组标识,确定出目标成员结构信息对应的键描述信息,将键描述信息作为数据的键名称。在该技术方案中,基于通用的数据结构模板,可以实现键名称的统一化管理。按照该方案可以存取整个结构体数据,也可以存取其中的任何一个成员,甚至可以存取结构体数组的任何元素或元素范围的成员,使得redis数据库的访问变得简单易行。
[0139] 图3为本申请实施例提供的一种键名称生成装置30的硬件结构示意图,包括:
[0140] 存储器31,用于存储计算机程序;
[0141] 处理器32,用于执行计算机程序以实现如上述任意一项键名称生成方法的步骤。
[0142] 本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项键名称生成方法的步骤。
[0143] 以上对本申请实施例所提供的一种键名称生成方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0144] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0145] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术领域内所公知的任意其它形式的存储介质中。