[发明专利]数据存储方法、数据查询方法、装置及电子设备在审
| 申请号: | 202111637486.6 | 申请日: | 2021-12-29 |
| 公开(公告)号: | CN114265787A | 公开(公告)日: | 2022-04-01 |
| 发明(设计)人: | 王振宇;吴瑕 | 申请(专利权)人: | 北京天融信网络安全技术有限公司;北京天融信科技有限公司;北京天融信软件有限公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F16/901 |
| 代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 杨奇松 |
| 地址: | 100085 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据 存储 方法 查询 装置 电子设备 | ||
本申请提供一种数据存储方法、数据查询方法、装置及电子设备,涉及计算机技术领域,该数据存储方法通过维护存储有哈希值和key在索引文件中的位置信息的第一数组,以及维护存储value的第二数组,并通过构建索引文件来存储key和value在第二数组中所在的位置,如此在内存中只用维护第一数组和第二数组,而索引文件存储在磁盘上,相比于现有采用哈希表来存储数据的方式,本方案可有效减少内存空间的消耗。
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据存储方法、数据查询方法、装置及电子设备。
背景技术
Java是当前软件系统研发最热门的变成语言之一,使用者十分庞大,而Java的HashMap是一个采用哈希表实现的键值对集合。HashMap能对海量键值对的数据进行加载及检索,但当对海量键值对数据进行存储时,由于涉及到基础类型值的内存加载,如相关对象引用及内部数据结构一些对象的实际占用,会导致内存空间消耗极大。
发明内容
本申请实施例的目的在于提供一种数据存储方法、数据查询方法、装置及电子设备,用以改善现有技术中采用哈希表存储数据的方式导致内存空间消耗大的问题。
第一方面,本申请实施例提供了一种数据存储方法,所述方法包括:
获取待存储数据,所述待存储数据为key-value类型的数据;
计算获得所述待存储数据中待存储key对应的待存储哈希值;
根据所述待存储哈希值,将所述待存储key存储在磁盘的索引文件中的对应位置,并获取所述对应位置的位置信息;
将所述待存储哈希值和所述位置信息存储在内存的第一数组中;
将所述待存储key对应的value存储在内存的第二数组中,并将所述第二数组中所述待存储key对应的value所在的元素位置存储在所述索引文件中与所述待存储key对应的位置处。
在上述实现过程中,通过维护存储有哈希值和key在索引文件中的位置信息的第一数组,以及维护存储value的第二数组,并通过构建索引文件来存储key和value在第二数组中所在的位置,如此在内存中只用维护第一数组和第二数组,而索引文件存储在磁盘上,相比于现有采用哈希表来存储数据的方式,本方案可有效减少内存空间的消耗。
可选地,所述将所述待存储key对应的value存储在内存的第二数组中,包括:
判断内存的所述第二数组中是否存在与所述待存储key对应的value相同的value;
若是,则用所述待存储key对应的value替换与其相同的value,并存储在所述第二数组中。
在上述实现过程中,将第二数组中存储的value进行去重处理,这样可以进一步节省内存空间的占用。
可选地,所述根据所述待存储哈希值,将所述待存储key存储在磁盘的索引文件中的对应位置,包括:
根据所述待存储哈希值,将所述待存储key存储在磁盘的索引文件中与所述待存储哈希值对应的行;
所述获取所述对应位置的位置信息,包括:
获取所述行的字节偏移量。
在上述实现过程中,通过行的字节偏移量来实现索引文件中key的定位,这样在数据查询时,可以快速定位到需查找的行的位置,提高查找效率。
可选地,所述待存储key对应的value所在的元素位置为该value对应的数组元素偏移量,所述数组元素偏移量的长度与所述第二数组中元素的最大长度一致。这样可使得在进行数据查找时,可以直接跳过固定长度的数据进行查找,提高查找效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天融信网络安全技术有限公司;北京天融信科技有限公司;北京天融信软件有限公司,未经北京天融信网络安全技术有限公司;北京天融信科技有限公司;北京天融信软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111637486.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





