CN117216052A - 一种多维度索引查询、存储的方法与终端 - Google Patents

一种多维度索引查询、存储的方法与终端 Download PDF

Info

Publication number
CN117216052A
CN117216052A CN202310959939.XA CN202310959939A CN117216052A CN 117216052 A CN117216052 A CN 117216052A CN 202310959939 A CN202310959939 A CN 202310959939A CN 117216052 A CN117216052 A CN 117216052A
Authority
CN
China
Prior art keywords
data
key
dimensional
query
cache
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.)
Pending
Application number
CN202310959939.XA
Other languages
English (en)
Inventor
刘德建
吴玉龙
陈宏�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Tianquan Educational Technology Ltd
Original Assignee
Fujian Tianquan Educational Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Tianquan Educational Technology Ltd filed Critical Fujian Tianquan Educational Technology Ltd
Priority to CN202310959939.XA priority Critical patent/CN117216052A/zh
Publication of CN117216052A publication Critical patent/CN117216052A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了种多维度索引查询、存储的方法与终端,获取待查询的多维度查询键,根据所述多维度查询键向缓存中预设的映射表进行查询,得到数据主键;所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系;根据所述数据主键进行缓存读取,得到所述数据主键对应的数据值,将所述数据值与所述多维度查询键作为缓存数据返回;本发明通过映射关系确定数据主键而后获取数据值,避免了大数据量的情况下,模糊查询存在的弊端;同时,基于多维度数据存储的方法,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免了数据存储的冗余。

Description

一种多维度索引查询、存储的方法与终端
技术领域
本发明涉及缓存存储与查询技术领域,特别涉及一种多维度索引查询、存储的方法与终端。
背景技术
现有的缓存机制,如Redis缓存仅支持单个键存储值,缓存数据存储的内容与查询的唯一key均是强绑定。如果这时候业务需求中要求通过另一个依赖关系的id字段来获取缓存中的数据信息,就会变得很艰难。现有的解决方案是:将需要查询的两个id拼接成一个字符串。模糊搜索其中的一个id,让Redis根据模糊查找的对应id来获取值中的内容。
然而,对于模糊搜索Redis键值读取,在少量数据业务的情况下可正常读取,但当数量达到一定程度后,模糊读取的效率就会降低,获取数据的响应时间就会变长。且现有的存储方式中,如果为每个key都存储一份value值,那么如果这个value需要两个key那么就存储两份一模一样的value冗余数据,而且更新数据是还需要同时更新两份数据。
因此,如何解决上述缺点是当前亟待解决的技术问题。
发明内容
本发明所要解决的技术问题是:提供一种多维度索引查询、存储的方法与终端,能够有效提高多维度索引查询的效率以及避免数据存储的冗余。
为了解决上述技术问题,本发明采用的技术方案为:
一种多维度索引存储的方法,包括步骤:
S1、根据用户请求,调用预设的多维度存储方法,获取用户传入的包括数据主键、多维度查询键以及数据值的参数,生成所述映射表以及由数据主键以及数据值组成的缓存数据;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系,所述缓存数据中对所述主键以及所述数据值进行关联存储。
一种多维度索引查询的方法,包括步骤:
S1、获取待查询的多维度查询键,根据所述多维度查询键向缓存中预设的映射表进行查询,得到数据主键;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系;
S2、根据所述数据主键进行缓存读取,得到所述数据主键对应的数据值,将所述数据值与所述多维度查询键作为缓存数据返回。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种多维度索引查询的终端,包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器中运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现以上一种多维度索引查询的方法中的步骤。
一种多维度索引存储的终端,包括第二处理器、第二存储器以及存储在所述第二存储器中并可在所述第二处理器中运行的第二计算机程序,所述第二处理器执行所述第二计算机程序时实现以上一种多维度索引存储的方法中的步骤。
本发明的有益效果在于:本发明的一种多维度索引查询、存储的方法与终端,对数据主键与数据值进行存储外,额外建立了一映射表,对多维度查询键和数据主键的映射关系进行存储,从而使得能够直接通过多维度查询键进行查询,通过映射关系确定数据主键而后获取数据值,避免了大数据量的情况下,模糊查询存在的弊端;同时,基于这种存储方式,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免了数据存储的冗余。
附图说明
图1为本发明实施例的一种多维度索引查询的方法的流程图;
图2为本发明实施例的一种多维度索引查询的终端的结构图;
图3为本发明实施例的一种多维度索引存储的终端的结构图;
图4为本发明实施例的某场景下传统的缓存方案示例图;
图5为本发明实施例的某场景下本发明的缓存方案示例图;
图6为传统缓存方案下实现的单维度查询的流程示例图;
图7为本发明实施例的一种多维度索引查询的流程示例图;
标号说明:
1、一种多维度索引查询的终端;2、第一处理器;3、第一存储器;4、一种多维度索引存储的终端;5、第二处理器;6、第二存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,一种多维度索引查询的方法,包括步骤:
S1、获取待查询的多维度查询键,根据所述多维度查询键向缓存中预设的映射表进行查询,得到数据主键;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系;
S2、根据所述数据主键进行缓存读取,得到所述数据主键对应的数据值,将所述数据值与所述多维度查询键作为缓存数据返回。
从上述描述可知,本发明的有益效果在于:本发明的一种多维度索引查询、存储的方法与终端,对数据主键与数据值进行存储外,额外建立了一映射表,对多维度查询键和数据主键的映射关系进行存储,从而使得能够直接通过多维度查询键进行查询,通过映射关系确定数据主键而后获取数据值,避免了大数据量的情况下,模糊查询存在的弊端;同时,基于这种存储方式,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免了数据存储的冗余。
进一步的,所述映射表为哈希键值对结构,将各个所述多维度查询键作为key,所述数据主键作为value进行存储。
由上述描述可知,通过HashMap结构将映射表存储在内存中,能够快速获取多维度查询键所映射的数据主键,有效提高查询效率。
进一步地,步骤S1之前还包括步骤:
S0、根据用户请求,调用预设的多维度存储方法,获取用户传入的包括数据主键、多维度查询键以及数据值的参数,生成所述映射表以及由数据主键以及数据值组成的缓存数据。
由上述描述可知,用户可以通过调用预设的多维度存储方法传入数据主键、多维度查询键以及数据值,来进行数据的存储,得到本发明提出的存储结构,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免数据存储的冗余。
进一步地,步骤S0还包括步骤:
S01、判断是否存在第一缓存数据和第二缓存数据的数据值相同,若是则将所述第二缓存数据的第二数据主键作为多维度查询键,建立与所述第一缓存数据的第一数据主键的映射关系,存入所述映射表中,建立第二缓存数据的多维度查询键与所述第一数据主键的映射关系,存入所述映射表中;
S02、对所述第二缓存数据进行数据清除。
由上述描述可知,能够自动对存在冗余的数据进行合并和清理,能够避免了用户主动合并,并能够为用户合并后的数据进行遗漏的处理,有效提高数据的简洁性。
一种多维度索引存储的方法,包括步骤:
S1、根据用户请求,调用预设的多维度存储方法,获取用户传入的包括数据主键、多维度查询键以及数据值的参数,生成所述映射表以及由数据主键以及数据值组成的缓存数据;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系,所述缓存数据中对所述主键以及所述数据值进行关联存储。
从上述描述可知,本发明的有益效果在于:本发明的一种多维度索引查询、存储的方法与终端,对数据主键与数据值进行存储外,额外建立了一映射表,对多维度查询键和数据主键的映射关系进行存储,从而使得能够直接通过多维度查询键进行查询,通过映射关系确定数据主键而后获取数据值,避免了大数据量的情况下,模糊查询存在的弊端;同时,基于这种存储方式,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免了数据存储的冗余。
进一步地,步骤S1还包括步骤:
S11、判断是否存在第一缓存数据和第二缓存数据的数据值相同,若是则将所述第二缓存数据的第二数据主键作为多维度查询键,建立与所述第一缓存数据的第一数据主键的映射关系,存入所述映射表中,建立第二缓存数据的多维度查询键与所述第一数据主键的映射关系,存入所述映射表中;
S12、对所述第二缓存数据进行数据清除。
由上述描述可知,能够自动对存在冗余的数据进行合并和清理,能够避免了用户主动合并,并能够为用户合并后的数据进行遗漏的处理,有效提高数据的简洁性。
请参照图2,一种多维度索引查询的终端,包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器中运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现以上一种多维度索引查询的方法中的步骤。
从上述描述可知,本发明的有益效果在于:本发明的一种多维度索引查询、存储的方法与终端,对数据主键与数据值进行存储外,额外建立了一映射表,对多维度查询键和数据主键的映射关系进行存储,从而使得能够直接通过多维度查询键进行查询,通过映射关系确定数据主键而后获取数据值,避免了大数据量的情况下,模糊查询存在的弊端;同时,基于这种存储方式,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免了数据存储的冗余。
请参照图3,一种多维度索引存储的终端,包括第二处理器、第二存储器以及存储在所述第二存储器中并可在所述第二处理器中运行的第二计算机程序,所述第二处理器执行所述第二计算机程序时实现以上一种多维度索引存储的方法中的步骤。
从上述描述可知,本发明的有益效果在于:本发明的一种多维度索引查询、存储的方法与终端,对数据主键与数据值进行存储外,额外建立了一映射表,对多维度查询键和数据主键的映射关系进行存储,从而使得能够直接通过多维度查询键进行查询,通过映射关系确定数据主键而后获取数据值,避免了大数据量的情况下,模糊查询存在的弊端;同时,基于这种存储方式,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免了数据存储的冗余。
本发明的一种多维度索引查询、存储的方法与终端,适用于存在多维度索引需求场景下的数据缓存,尤其适用于存在多维度索引需求场景下的Redis数据缓存。
本发明的实施例一为:
一种多维度索引存储的方法,包括步骤:
S1、根据用户请求,调用预设的多维度存储方法,获取用户传入的包括数据主键、多维度查询键以及数据值的参数,生成所述映射表以及由数据主键以及数据值组成的缓存数据;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系,所述缓存数据中对所述主键以及所述数据值进行关联存储。
本实施例中,以在Redis缓存服务中的应用作为示例。基于现有Redis的哈希表键值对应关系,一个key对应一个value的结构基础上,再新增一组哈希表(映射表),将需要查询的key_n(多维度查询键)与数据主键key_primary建立关联。
具体的,在原来的Redis缓存服务中,额外新增一组映射表,用于建立查询的多维度查询键(key1、key2...key_n)与数据主键之间的映射关系,再复用现有的Redis存储主键与数据内容之间的映射关系。
本实施例中,预先改造了Redis的SDK,新增多维度存储方法,传入的参数包括:数据主键、多维度查询键的数组、需要缓存的数据内容(即数据值)。多维度存储方法能够解析多维度的数组,将其结合前文所述的新增的哈希表转化为多维度key键与主键的映射。
所述映射表为哈希键值对结构,将各个所述多维度查询键作为key,所述数据主键作为value进行存储。
步骤S1还包括步骤:
S11、判断是否存在第一缓存数据和第二缓存数据的数据值相同,若是则将所述第二缓存数据的第二数据主键作为多维度查询键,建立与所述第一缓存数据的第一数据主键的映射关系,存入所述映射表中,建立第二缓存数据的多维度查询键与所述第一数据主键的映射关系,存入所述映射表中;
S12、对所述第二缓存数据进行数据清除。
请参照图1以及图4至7,本发明的实施例二为:
一种多维度索引查询的方法,包括步骤:
S1、获取待查询的多维度查询键,根据所述多维度查询键向缓存中预设的映射表进行查询,得到数据主键;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系。
本实施例中,可参照图6和图7,通过key1或key2等的多维度查询键在Redis的第一层的哈希表中检索,取到数据缓存的数据主键(即图5中的主key)key_primary。
S2、根据所述数据主键进行缓存读取,得到所述数据主键对应的数据值,将所述数据值与所述多维度查询键作为缓存数据返回。
本实施例中,在获取到数据主键key_primary后,利用数据主键key_primary从缓存中得到缓存数据,而后将读取的缓存数据(数据值)拼接上key1或key2维度键,作为缓存数据返回。
可参照图4和图5所示,以下结合具体的应用场景进行说明:
公司有一款EDA教育项目,开发人员小A现在需要开发一个功能,将课程id来查询学员的学习情况,同时,每个课程对应另一个系统的资源根目录id,从根目录id可以展开读取到章、节、课程视频等信息。
这里就遇到两个场景,在课程详情查询学员学习情况时,需要通过课程id作为查询维度,在资源树的详情查询学员学习情况时,是通过资源树的根目录id。
投入生产使用过程中,大量学员在查询课程的学习情况,数据库读取受到压力,需要加上Redis缓存课程学习情况的数据信息,缓解数据库的压力。这时候问题来了,在课程详情中,可以通过课程id来索引缓存,但是在资源树中,通过根的目录id无法索引到缓存数据。
开发人员小A如果使用传统的单维度缓存存储方案,只能课程id存一份缓存数据,根的目录id也存一份缓存数据,造成数据冗余,内存被大量数据使用。小A被迫又改为用课程id加上根的目录id作为一个key进行存储,查询时通过Redis键的模糊搜索,来获取缓存数据,但是缓存性能从10~30微秒变为200~400微秒,而且Redis模糊查询造成Redis服务器CPU达到100%以上。压测过程中,已明显出了问题。
在改用本实施例的方案后,通过改造后的多维度版本的Redis SDK进行处理业务,缓存数据时传入多维度key(即多维度查询键,可包括课程id、资源树的根目录id)、需要缓存的数据内容,读取数据时,传入一个维度的所述多维度查询键key,如资源树的根目录id,即可马上取到缓存的学员学习数据。在同样配置的服务器环境下,性能比较之前的方案,提升了几倍,功能也更为稳定。
本发明的实施例三为:
一种多维度索引查询的方法,与实施例二的区别在于,步骤S1之前还包括步骤:
S0、根据用户请求,调用预设的多维度存储方法,获取用户传入的包括数据主键、多维度查询键以及数据值的参数,生成所述映射表以及由数据主键以及数据值组成的缓存数据。
步骤S0还包括步骤:
S01、判断是否存在第一缓存数据和第二缓存数据的数据值相同,若是则将所述第二缓存数据的第二数据主键作为多维度查询键,建立与所述第一缓存数据的第一数据主键的映射关系,存入所述映射表中,建立第二缓存数据的多维度查询键与所述第一数据主键的映射关系,存入所述映射表中;
S02、对所述第二缓存数据进行数据清除。
具体可参照实施例一中的一种多维度索引存储的方法。基于Redis缓存强大的性能优势,基于本实施例的改造,使其允许支持多个key维度查询。
请参照图3,本发明的实施例四为:
一种多维度索引存储的终端4,包括第二处理器5、第二存储器6以及存储在所述第二存储器6中并可在所述第二处理器5中运行的第二计算机程序,所述第二处理器5执行所述第二计算机程序时实现以上实施例一所述的一种多维度索引存储的方法中的步骤。
请参照图2,本发明的实施例五为:
一种多维度索引查询的终端1,包括第一处理器2、第一存储器3以及存储在所述第一存储器3中并可在所述第一处理器2中运行的第一计算机程序,所述第一处理器2执行所述第一计算机程序时实现以上实施例二或三的一种多维度索引查询的方法中的步骤。
综上所述,本发明提供的一种多维度索引查询、存储的方法与终端,对数据主键与数据值进行存储外,额外建立了一映射表,对多维度查询键和数据主键的映射关系进行存储,从而使得能够直接通过多维度查询键进行查询,通过映射关系确定数据主键而后获取数据值,避免了大数据量的情况下,模糊查询存在的弊端;同时,基于这种存储方式,对于value值相同,key值不同的数据,用户可以将该key值作为多维度查询键进行存储,避免了数据存储的冗余。
本发明解决了原有Redis缓存仅支持单维度查询的问题,以及现有市面上冗余存储等设计思路存在的运行效果不佳的问题。
本发明将设计思路赋予实现,自研了多维度索引的Redis以及Redis SDK,让多维度查询成为现实,可以让更方便的完成多维度key的数据缓存与查询。在同样配置的服务器环境下,使用了该方案后,可以处理的缓存数量较未使用该方案的情况提升好几倍。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种多维度索引存储的方法,其特征在于,包括步骤:
S1、根据用户请求,调用预设的多维度存储方法,获取用户传入的包括数据主键、多维度查询键以及数据值的参数,生成映射表以及由数据主键以及数据值组成的缓存数据;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系,所述缓存数据中对所述主键以及所述数据值进行关联存储。
2.根据权利要求1所述的一种多维度索引存储的方法,其特征在于,步骤S1还包括步骤:
S11、判断是否存在第一缓存数据和第二缓存数据的数据值相同,若是则将所述第二缓存数据的第二数据主键作为多维度查询键,建立与所述第一缓存数据的第一数据主键的映射关系,存入所述映射表中,建立第二缓存数据的多维度查询键与所述第一数据主键的映射关系,存入所述映射表中;
S12、对所述第二缓存数据进行数据清除。
3.根据权利要求1所述的一种多维度索引存储的方法,其特征在于,所述映射表为哈希键值对结构,将各个所述多维度查询键作为key,所述数据主键作为value进行存储。
4.一种多维度索引查询的方法,其特征在于,包括步骤:
S1、获取待查询的多维度查询键,根据所述多维度查询键向缓存中预设的映射表进行查询,得到数据主键;
所述映射表中存储有所述数据主键与其所有关联的多维度查询键的映射关系;
S2、根据所述数据主键进行缓存读取,得到所述数据主键对应的数据值,将所述数据值与所述多维度查询键作为缓存数据返回。
5.根据权利要求4所述的一种多维度索引查询的方法,其特征在于,所述映射表为哈希键值对结构,将各个所述多维度查询键作为key,所述数据主键作为value进行存储。
6.根据权利要求4所述的一种多维度索引查询的方法,其特征在于,步骤S1之前还包括步骤:
S0、根据用户请求,调用预设的多维度存储方法,获取用户传入的包括数据主键、多维度查询键以及数据值的参数,生成所述映射表以及由数据主键以及数据值组成的缓存数据。
7.根据权利要求6所述的一种多维度索引查询的方法,其特征在于,步骤S0还包括步骤:
S01、判断是否存在第一缓存数据和第二缓存数据的数据值相同,若是则将所述第二缓存数据的第二数据主键作为多维度查询键,建立与所述第一缓存数据的第一数据主键的映射关系,存入所述映射表中,建立第二缓存数据的多维度查询键与所述第一数据主键的映射关系,存入所述映射表中;
S02、对所述第二缓存数据进行数据清除。
8.一种多维度索引查询的终端,包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器中运行的第一计算机程序,其特征在于,所述第一处理器执行所述第一计算机程序时实现以上权利要求4-7任一所述的一种多维度索引查询的方法中的步骤。
9.一种多维度索引存储的终端,包括第二处理器、第二存储器以及存储在所述第二存储器中并可在所述第二处理器中运行的第二计算机程序,其特征在于,所述第二处理器执行所述第二计算机程序时实现以上权利要求1-3任一所述的一种多维度索引存储的方法中的步骤。
CN202310959939.XA 2023-08-01 2023-08-01 一种多维度索引查询、存储的方法与终端 Pending CN117216052A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310959939.XA CN117216052A (zh) 2023-08-01 2023-08-01 一种多维度索引查询、存储的方法与终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310959939.XA CN117216052A (zh) 2023-08-01 2023-08-01 一种多维度索引查询、存储的方法与终端

Publications (1)

Publication Number Publication Date
CN117216052A true CN117216052A (zh) 2023-12-12

Family

ID=89034180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310959939.XA Pending CN117216052A (zh) 2023-08-01 2023-08-01 一种多维度索引查询、存储的方法与终端

Country Status (1)

Country Link
CN (1) CN117216052A (zh)

Similar Documents

Publication Publication Date Title
US7099888B2 (en) Accessing a remotely located nested object
US7533136B2 (en) Efficient implementation of multiple work areas in a file system like repository that supports file versioning
US8375044B2 (en) Query processing pipelines with single-item and multiple-item query operators
US6487641B1 (en) Dynamic caches with miss tables
US8738592B2 (en) Managing data transaction requests
US20180239800A1 (en) Data query method and apparatus
US9430539B2 (en) Universal data storage system that maintains data across one or more specialized data stores
US10936559B1 (en) Strongly-consistent secondary index for a distributed data set
US8990227B2 (en) Globally unique identification of directory server changelog records
WO2021147935A1 (zh) 一种日志回放方法及装置
US7543004B2 (en) Efficient support for workspace-local queries in a repository that supports file versioning
US20080294673A1 (en) Data transfer and storage based on meta-data
AU2002351296B2 (en) System and method for processing a request using multiple database units
CN117216052A (zh) 一种多维度索引查询、存储的方法与终端
CN115658768A (zh) 一种状态数据库的属性查询方法、装置及相关介质
CN114218277A (zh) 一种关系数据库的高效查询方法和装置
US8745072B2 (en) Virtual directory server changelog
CN116305288B (zh) 一种隔离数据库资源的方法、装置、设备和存储介质
CN113094391B (zh) 一种支持缓存的数据汇总的计算方法、装置及设备
JP2017500640A (ja) ルートノードを変更するための方法および変更装置
WO2024022330A1 (zh) 一种基于文件系统的元数据管理方法及其相关设备
CN109947775B (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN117951112A (zh) 一种业务系统架构的基础数据处理方法
JPH1153322A (ja) オブジェクト探索取得方法並びに探索サーバ及び記録媒体
CN118394788A (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