[发明专利]内存存储方法与装置、内存查询方法与装置有效
申请号: | 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.vipzhuanli.com/pat/books/201710890458.2/1.html,转载请声明来源钻瓜专利网。