[發(fā)明專利]內(nèi)存存儲(chǔ)方法與裝置、內(nèi)存查詢方法與裝置有效
| 申請?zhí)枺?/td> | 201710890458.2 | 申請日: | 2017-09-27 |
| 公開(公告)號: | CN107766258B | 公開(公告)日: | 2021-11-16 |
| 發(fā)明(設(shè)計(jì))人: | 邱文一 | 申請(專利權(quán))人: | 恩億科(北京)數(shù)據(jù)科技有限公司 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06 |
| 代理公司: | 北京同立鈞成知識產(chǎn)權(quán)代理有限公司 11205 | 代理人: | 楊澤;劉芳 |
| 地址: | 100080 北京市海淀區(qū)西小口路66*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 內(nèi)存 存儲(chǔ) 方法 裝置 查詢 | ||
本發(fā)明實(shí)施例提供一種內(nèi)存存儲(chǔ)方法與裝置、內(nèi)存查詢方法與裝置,所述方法包括:根據(jù)每個(gè)待存儲(chǔ)數(shù)據(jù)的關(guān)鍵字和哈希桶函數(shù),獲得每個(gè)待存儲(chǔ)數(shù)據(jù)對應(yīng)的哈希桶值,根據(jù)每個(gè)哈希桶值和哈希函數(shù),確定每個(gè)哈希桶值對應(yīng)的哈希桶在存儲(chǔ)表中的位置;根據(jù)所述哈希桶在存儲(chǔ)表中的位置,將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在所述哈希桶中。通過將哈希桶值作為key值,在存儲(chǔ)n條記錄時(shí),只需要哈希桶值空間大小個(gè)Key值,進(jìn)而節(jié)約了內(nèi)存,實(shí)現(xiàn)了內(nèi)存的實(shí)時(shí)查詢。
技術(shù)領(lǐng)域
本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種內(nèi)存存儲(chǔ)方法與裝置、內(nèi)存查詢方法與裝置。
背景技術(shù)
隨著大數(shù)據(jù)的發(fā)展和信息的共享,DMP(Data-Management Platform,數(shù)據(jù)管理平臺)得到了廣泛的應(yīng)用。DMP包括十幾億到上百億量級的數(shù)據(jù),其實(shí)時(shí)查詢通常由內(nèi)存型數(shù)據(jù)庫提供存儲(chǔ)支持,如此巨大的量級對內(nèi)存的消耗基本在幾十T左右,成本巨大。這就需要一種既能提高實(shí)時(shí)查詢的性能(一般需要在5ms以下)又能用較低內(nèi)存支撐海量數(shù)據(jù)的存儲(chǔ)數(shù)據(jù)庫。
目前對于海量內(nèi)存存儲(chǔ)的一般解決方案是Redis cluster(一種開源分布式內(nèi)存Key-Value數(shù)據(jù)庫)和Memcached(一個(gè)高性能的分布式內(nèi)存對象緩存系統(tǒng)),通過LRU(LeastRecently Used,最近最久未使用)等策略將一部分熱數(shù)據(jù)加載在內(nèi)存中提供查詢,而將冷數(shù)據(jù)放入較為緩慢廉價(jià)的存儲(chǔ)設(shè)備中。其本質(zhì)上是通過業(yè)務(wù)特點(diǎn)減少了需要緩存的數(shù)據(jù)的數(shù)量,做出了低頻訪問數(shù)據(jù)的實(shí)時(shí)性的犧牲,以達(dá)到節(jié)約存儲(chǔ)成本的目的。
但是,對于無法預(yù)判熱度的數(shù)據(jù)來說,現(xiàn)有技術(shù)無法實(shí)現(xiàn)減少內(nèi)存的存儲(chǔ)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種內(nèi)存存儲(chǔ)方法與裝置、內(nèi)存查詢方法與裝置,以解現(xiàn)有技術(shù)無法實(shí)現(xiàn)減少內(nèi)存的存儲(chǔ)的問題。
第一方面,本發(fā)明實(shí)施例提供一種內(nèi)存存儲(chǔ)方法,包括:
根據(jù)每個(gè)待存儲(chǔ)數(shù)據(jù)的關(guān)鍵字和哈希桶函數(shù),獲得每個(gè)待存儲(chǔ)數(shù)據(jù)對應(yīng)的哈希桶值,所述哈希桶函數(shù)為所述關(guān)鍵字與所述哈希桶值之間的函數(shù)關(guān)系式;
根據(jù)每個(gè)哈希桶值和哈希函數(shù),確定每個(gè)哈希桶值對應(yīng)的哈希桶在存儲(chǔ)表中的位置;
根據(jù)所述哈希桶在存儲(chǔ)表中的位置,將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在所述哈希桶中,所述存儲(chǔ)表包括至少一個(gè)哈希桶和存儲(chǔ)在所述哈希桶中的待存儲(chǔ)數(shù)據(jù)。
可選的,所述哈希桶還包括所述待存儲(chǔ)數(shù)據(jù)的關(guān)鍵字與所述待存儲(chǔ)數(shù)據(jù)的映射關(guān)系。
可選的,所述存儲(chǔ)表包括的哈希桶的數(shù)目為2m個(gè),所述m為大于0的正整數(shù)。
在第一方面的一種可能的實(shí)現(xiàn)方式中,所述根據(jù)每個(gè)待存儲(chǔ)數(shù)據(jù)的關(guān)鍵字和哈希桶函數(shù),獲得每個(gè)待存儲(chǔ)數(shù)據(jù)對應(yīng)的哈希桶值,具體包括:
根據(jù)公式hash′(Ki)=MD5(Ki)((2128)(127-m)),獲得每個(gè)待存儲(chǔ)數(shù)據(jù)對應(yīng)的哈希桶值hash′(Ki);
其中,所述Ki為待存儲(chǔ)數(shù)據(jù)i的關(guān)鍵字,所述MD5為單向散列算法,所述m為所述MD5的前m位。
可選的,所述哈希桶中不同的待存儲(chǔ)數(shù)據(jù)呈線性排列。
可選的,每個(gè)哈希桶中存儲(chǔ)的待存儲(chǔ)數(shù)據(jù)的數(shù)目符合多項(xiàng)式分布。
在第一方面的另一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
獲取每個(gè)哈希桶中失效的待存儲(chǔ)數(shù)據(jù),并刪除所述失效的待存儲(chǔ)數(shù)據(jù)。
在第一方面的另一種可能的實(shí)現(xiàn)方式中,所述獲取每個(gè)哈希桶中失效的待存儲(chǔ)數(shù)據(jù),并刪除所述失效的待存儲(chǔ)數(shù)據(jù),具體包括:
判斷每個(gè)哈希桶中存儲(chǔ)的待存儲(chǔ)數(shù)據(jù)的條數(shù)是否大于或等于預(yù)設(shè)條數(shù);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于恩億科(北京)數(shù)據(jù)科技有限公司,未經(jīng)恩億科(北京)數(shù)據(jù)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710890458.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類存儲(chǔ)方法和裝置
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





