[发明专利]数据存储方法、装置及存储介质有效

专利信息
申请号: 201710322014.9 申请日: 2017-05-09
公开(公告)号: CN108874803B 公开(公告)日: 2023-05-12
发明(设计)人: 蔡畅奇 申请(专利权)人: 腾讯科技(深圳)有限公司
主分类号: G06F16/22 分类号: G06F16/22
代理公司: 北京三高永信知识产权代理有限责任公司 11138 代理人: 朱雅男
地址: 518057 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 数据 存储 方法 装置 介质
【权利要求书】:

1.一种数据存储方法,其特征在于,应用于服务器中,所述服务器中包括数据存储系统,所述数据存储系统包括键值存储数据库Redis集群、开源关系型数据库Postgresql集群,所述Redis提供存储、获取、统计和计算四个命令,所述Redis提供接口实现数据的插入、查找或者删除,所述Redis用于管理布隆过滤器BloomFliter的数据,所述BloomFliter包括一个二进制向量和至少两个目标哈希函数,所述方法包括:

获取目标用户的用户标识和待推送消息的消息标识,所述目标用户为进行历史消息推送时需要推送的用户;

拼接所述目标用户的用户标识的字符串与所述待推送消息的消息标识的字符串,生成数据记录;

基于BloomFliter算法,对所述数据记录中生成的数据进行预查询,从中筛选出误判数据记录;

根据所述误判数据记录和查询次数,计算查询误判率,并将所述误判数据记录组成误判消息表,所述查询误判率为在历史查询过程中出现错误的比例,所述查询误判率用于确定目标哈希函数的目标数量,所述误判消息表存储在所述Redis集群中的主Redis中;

获取待存储数据记录,所述待存储数据记录由用户标识和消息标识组成;

采用至少两个目标哈希函数对所述待存储数据记录进行计算,得到至少两个第一哈希值,所述至少两个目标哈希函数相互独立;

确定每个第一哈希值在位数组中对应的存储位置,所述位数组用于存储数据,所述位数组中的数据采用二进制形式进行存储,所述位数组的第一行表示所述位数组的存储位置,当所述存储位置上的标识为1时,表示所述存储位置上存储有二进制数据,当所述存储位置上的标识为0时,表示所述存储位置上未存储有二进制数据,所述位数组的第二行表示所述位数组每个存储位置对应的哈希值,且所述位数组不同的存储位置对应不同的哈希值;所述位数组作为所述Redis的维数存储到所述Redis集群中的主Redis中,所述主Redis使用字符串对象表示所述位数组,所述主Redis将存储的数据同步到从Redis中,且所述主Redis每隔预设时长将存储的数据同步到所述Postgresql集群中的主Postgresql中,所述主Postgresql用于将存储的数据同步到从Postgresql中;

当任一第一哈希值对应的存储位置上未存储有二进制数据,在所述存储位置上存储所述第一哈希值对应的二进制数据;

接收数据查询请求,所述数据查询请求包括待查询数据记录;

采用所述至少两个目标哈希函数对所述待查询数据记录进行计算,得到至少两个第二哈希值;

当所述位数组中存储有每个第二哈希值,判断所述误判消息表中是否存储所述待查询数据记录;

当所述误判消息表中存储有所述待查询数据记录,确定查询结果为所述位数组中未存储所述待查询数据记录;

当所述误判消息表中未存储所述待查询数据记录,确定查询结果为所述位数组中存储有所述待查询数据记录;

当所述位数组中未存储任一第二哈希值,确定查询结果为所述位数组中未存储所述待查询数据记录。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

根据目标用户数量和待推送消息数量,确定消息的推送总数量;

根据所述推送总数量和预先确定的查询误判率,计算所述位数组的目标存储空间;

根据所述位数组的目标存储空间和所述推送总数量,计算所述目标哈希函数的目标数量;

获取所述目标数量个相互独立的哈希函数,并将所述目标数量个相互独立的哈希函数作为所述至少两个目标哈希函数。

3.根据权利要求2所述的方法,其特征在于,所述根据所述推送总数量和预先确定的查询误判率,计算所述位数组的目标存储空间,包括:

根据所述推送总数量和预先确定的查询误判率,应用以下公式,计算所述位数组的目标存储空间:

所述根据所述位数组的目标存储空间和所述推送总数量,计算所述目标哈希函数的目标数量,包括:

根据所述位数组的目标存储空间和所述推送总数量,应用以下公式,计算所述目标哈希函数的目标数量:

其中,为所述位数组的目标存储空间,为所述推送总数量,为所述预先确定的查询误判率,为所述目标哈希函数的目标数量。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710322014.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top