[發明專利]內存存儲方法與裝置、內存查詢方法與裝置有效
| 申請號: | 201710890458.2 | 申請日: | 2017-09-27 |
| 公開(公告)號: | CN107766258B | 公開(公告)日: | 2021-11-16 |
| 發明(設計)人: | 邱文一 | 申請(專利權)人: | 恩億科(北京)數據科技有限公司 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 楊澤;劉芳 |
| 地址: | 100080 北京市海淀區西小口路66*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 存儲 方法 裝置 查詢 | ||
1.一種內存存儲方法,其特征在于,包括:
根據每個待存儲數據的關鍵字和哈希桶函數,獲得每個待存儲數據對應的哈希桶值,所述哈希桶函數為所述關鍵字與所述哈希桶值之間的函數關系式;
根據每個哈希桶值和哈希函數,確定每個哈希桶值對應的哈希桶在存儲表中的位置;
根據所述哈希桶在存儲表中的位置,將所述待存儲數據存儲在所述哈希桶中,所述存儲表包括至少一個哈希桶和存儲在所述哈希桶中的待存儲數據;每個哈希桶中存儲的待存儲數據的數目符合多項式分布;
獲取每個哈希桶中失效的待存儲數據,并刪除所述失效的待存儲數據;
所述獲取每個哈希桶中失效的待存儲數據,并刪除所述失效的待存儲數據,具體包括:
判斷每個哈希桶的容量使用率是否大于或等于預設容量使用率;
若是,則根據每個第二哈希桶中每個待存儲數據的初始存儲時刻,從每個第二哈希桶中刪除目標數量的待存儲數據,所述目標數量為所述第二哈希桶中超出所述預設容量使用率的待存儲數據條數,所述第二哈希桶為各哈希桶中容量使用率大于或等于預設容量使用率的哈希桶。
2.根據權利要求1所述的方法,其特征在于,所述哈希桶還包括所述待存儲數據的關鍵字與所述待存儲數據的映射關系。
3.根據權利要求2所述的方法,其特征在于,所述哈希桶中不同的待存儲數據呈線性排列。
4.根據權利要求2所述的方法,其特征在于,所述存儲表包括的哈希桶的數目為2m個,所述m為大于0的正整數。
5.根據權利要求4所述的方法,其特征在于,所述根據每個待存儲數據的關鍵字和哈希桶函數,獲得每個待存儲數據對應的哈希桶值,具體包括:
根據公式hash′(Ki)=MD5(Ki)((2128)<<(127-m)),獲得每個待存儲數據對應的哈希桶值hash′(Ki);
其中,所述Ki為待存儲數據i的關鍵字,所述MD5為單向散列算法,所述m為所述MD5的前m位。
6.根據權利要求1所述的方法,其特征在于,所述獲取每個哈希桶中失效的待存儲數據,并刪除所述失效的待存儲數據,還具體包括:
判斷每個哈希桶中存儲的待存儲數據的條數是否大于或等于預設條數;
若是,則判斷每個第一哈希桶中每個待存儲數據的初始存儲時刻是否大于或等于預設時刻,所述第一哈希桶為各哈希桶中待存儲數據的條數大于或等于預設條數的哈希桶;
若所述第一哈希桶中所述待存儲數據的初始存儲時刻大于或等于預設時刻,則從所述第一哈希桶中刪除所述待存儲數據。
7.一種內存查詢方法,其特征在于,包括:
根據待查詢數據的關鍵字和哈希桶函數,獲得所述待查詢數據對應的哈希桶值,所述哈希桶函數為所述關鍵字與所述哈希桶值之間的函數關系式;
根據所述哈希桶值和哈希函數,確定所述哈希桶值對應的哈希桶在存儲表中的位置,所述存儲表包括至少一個哈希桶和存儲在所述哈希桶中的待查詢數據;每個哈希桶中存儲的待查詢數據的數目符合多項式分布;
根據所述哈希桶的位置,從所述哈希桶中讀取所述待查詢數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于恩億科(北京)數據科技有限公司,未經恩億科(北京)數據科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710890458.2/1.html,轉載請聲明來源鉆瓜專利網。





