[發明專利]數據存儲方法、裝置及存儲介質有效
| 申請號: | 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所述的方法,其特征在于,所述根據所述推送總數量和預先確定的查詢誤判率,計算所述位數組的目標存儲空間,包括:
根據所述推送總數量和預先確定的查詢誤判率,應用以下公式,計算所述位數組的目標存儲空間:
;
所述根據所述位數組的目標存儲空間和所述推送總數量,計算所述目標哈希函數的目標數量,包括:
根據所述位數組的目標存儲空間和所述推送總數量,應用以下公式,計算所述目標哈希函數的目標數量:
;
其中,為所述位數組的目標存儲空間,為所述推送總數量,為所述預先確定的查詢誤判率,為所述目標哈希函數的目標數量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710322014.9/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:網頁檢測方法和裝置
- 下一篇:數據存儲方法、數據查詢方法及裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





