[发明专利]一种基于共享内存的键值对存储方法及装置在审
申请号: | 201310412659.3 | 申请日: | 2013-09-11 |
公开(公告)号: | CN103473314A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 闫永涛 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 共享 内存 键值 存储 方法 装置 | ||
1.一种基于共享内存的键值对存储方法,其特征在于,包括以下步骤:
步骤1:在共享内存中创建内存索引单元和内存数据块单元,所述内存索引单元用于存储key在内存数据块单元中相对数据存储区域首地址的偏移量,所述内存数据块单元用于存储value;
步骤2:采用散列算法计算value的哈希值;
步骤3:将哈希值作为key在内存索引单元中的相对数据存储区域首地址的偏移量;
步骤4:若偏移量为零,将value存储于内存数据块单元的起始位置,若偏移量大于零,执行步骤5;
步骤5:比较与偏移量对应的内存数据块单元中的存储位置处已有的value与待存储的value的长度,根据比较结果,将待存储的value存储在内存数据块单元中。
2.根据权利要求1所述的键值对存储方法,其特征在于:所述步骤5具体为:比较与偏移量对应的内存数据块单元中的存储位置处已存储的value的长度是否大于待存储的value,如若已存储的value的长度大于或等于待存储的value,将待存储的value覆盖已存储的value,否则,将待存储的value存储于内存数据块单元中数据存储区域的末尾。
3.根据权利要求1所述的键值对存储方法,其特征在于:所述value在内存数据块单元中的存储位置为内存数据块单元中数据存储区域的首地址加上偏移量。
4.一种基于共享内存的键值对存储装置,其特征在于:包括创建存储单元模块(1),计算哈希模块(2),偏移量模块(3),判断模块(4)和比较存储模块(5);
所述创建存储单元模块(1),用于在共享内存中创建内存索引单元和内存数据块单元,所述内存索引单元用于存储key在内存数据块单元中相对数据存储区域首地址的偏移量,所述内存数据块单元用于存储value,将内存索引单元信息的信息和内存数据块单元的信息发送给比较存储模块(5);
所述计算哈希模块(2),用于采用散列算法计算value的哈希值,将哈希值发送给偏移量模块(3);
所述偏移量模块(3),用于接收哈希值,将哈希值作为key在内存索引单元中的相对数据存储区域首地址的偏移量,将偏移量发送给判断模块(4);
所述判断模块(4),用于接收偏移量,若偏移量为零,将value存储于内存数据块单元的起始位置,若偏移量大于零,执行比较存储模块(5);
所述比较存储模块(5),用于接收内存索引单元信息的信息和内存数据块单元的信息,比较与偏移量对应的内存数据块单元中的存储位置处已有的value与待存储的value的长度,根据比较结果,将待存储的value存储在内存数据块单元中。
5.根据权利要求4所述的键值对存储装置,其特征在于:所述比较存储模块(5)具体用于:比较与偏移量对应的内存数据块单元中的存储位置处已存储的value的长度是否大于待存储的value,如若已存储的value的长度大于或等于待存储的value,将待存储的value覆盖已存储的value,否则,将待存储的value存储于内存数据块单元中数据存储区域的末尾。
6.根据权利要求4所述的键值对存储装置,其特征在于:所述value在内存数据块单元中的存储位置为内存数据块单元中数据存储区域的首地址加上偏移量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310412659.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于信息增益的手机阅读推荐方法及装置
- 下一篇:一种重复数据处理技术