[發明專利]數據存儲方法、裝置及存儲介質有效
| 申請號: | 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.szxzyx.cn/pat/books/201710322014.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:網頁檢測方法和裝置
- 下一篇:數據存儲方法、數據查詢方法及裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





