[发明专利]数据存储方法、装置及存储介质有效
申请号: | 201710322014.9 | 申请日: | 2017-05-09 |
公开(公告)号: | CN108874803B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 蔡畅奇 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 朱雅男 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 存储 方法 装置 介质 | ||
本发明公开了一种数据存储方法、装置及存储介质,属于互联网技术领域。该方法包括:获取待存储数据记录;采用至少两个目标哈希函数对待存储数据记录进行计算,得到至少两个第一哈希值;确定每个第一哈希值在位数组中对应的存储位置,且位数组不同的存储位置对应不同的哈希值;将每个第一哈希值对应的二进制数据存储到对应的存储位置上。本发明在获取到待存储数据记录后,采用至少两个目标哈希函数计算待存储数据的哈希值,进而将每个第一哈希值对应的二进制数据存储到对应的存储位置上。由于无需存储数据本身,仅存储哈希值对应的二进制数据,且仅当存储位置上未存储有二进制数据时,才存储该哈希值对应的二进制数据,因而节省了存储空间。
技术领域
本发明涉及互联网技术领域,特别涉及一种数据存储方法、装置及存储介质。
背景技术
在现代生活中,为使用户了解到最新的资讯,网络平台定时会向终端所在用户推送一些消息。为确保每个终端均能接收到消息,同时避免重复发送的消息对用户过度打扰,在将消息推送给用户之后,常常需要存储消息标识及用户标识。
如果将消息标识称为第一数据,将用户标识称为第二数据,现有技术在进行数据存储时,直接将第一数据和第二数据存储到哈希表中。
然而,随着互联网上用户数量及消息数量的增多,采用哈希表进行数据存储时,存储的数据将占用系统大量的存储空间,进而降低系统性能。例如,设定用户数量为10亿个,每个用户推送2条消息,哈希表的存储利用率50%(哈希表自身性能决定的,存储数据时利用率不会到达100%),用户标识的字符串平均长度为10个字节,消息标识的字符串长度为8个字节,当采用哈希表进行存储时,所需的存储空间为{[(10亿*18字节*2*2)/1024]/1024}/1024=67.1G。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据存储方法、装置及存储介质。所述技术方案如下:
第一方面,提供了一种数据存储方法,所述方法包括:
获取待存储数据记录,所述待存储数据记录由用户标识和消息标识组成;
采用至少两个目标哈希函数对所述待存储数据记录进行计算,得到至少两个第一哈希值,所述至少两个目标哈希函数相互独立;
确定每个第一哈希值在位数组中对应的存储位置,所述位数组中的数据采用二进制形式进行存储,且所述位数组不同的存储位置对应不同的哈希值;
当任一第一哈希值对应的存储位置上未存储有二进制数据,在所述存储位置上存储所述第一哈希值对应的二进制数据。
第二方面,提供了一种数据存储装置,所述装置包括:
第一获取模块,用于获取待存储数据记录,所述待存储数据记录由用户标识和消息标识组成;
第一计算模块,用于采用至少两个目标哈希函数对所述待存储数据记录进行计算,得到至少两个第一哈希值,所述至少两个目标哈希函数相互独立;
第一确定模块,用于确定每个第一哈希值在位数组中对应的存储位置,所述位数组中的数据采用二进制形式进行存储,且所述位数组不同的存储位置对应不同的哈希值;
存储模块,用于当任一第一哈希值对应的存储位置上未存储有二进制数据,在所述存储位置上存储所述第一哈希值对应的二进制数据。
第三方面,提供了一种非临时性计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由所述处理器加载并执行以实现第一方面所述的数据存储方法。
本发明实施例提供的技术方案带来的有益效果是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710322014.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:网页检测方法和装置
- 下一篇:数据存储方法、数据查询方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置