[发明专利]键值数据存储方法、装置、存储介质与电子设备在审
申请号: | 201910506763.6 | 申请日: | 2019-06-12 |
公开(公告)号: | CN111177143A | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 李辉 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 深圳市隆天联鼎知识产权代理有限公司 44232 | 代理人: | 刘抗美 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 键值 数据 存储 方法 装置 介质 电子设备 | ||
1.一种键值数据存储方法,其特征在于,包括:
获取待存储数据,包括成对的键数据和值数据;
根据所述键数据的哈希值,在共享内存的哈希存储区域中确定所述键数据对应的目标哈希存储单元;
将所述键数据存储至所述共享内存的键存储区域中的目标键存储单元,所述目标键存储单元与所述目标哈希存储单元具有关联;
将所述值数据存储至所述共享内存的值存储区域中的目标值存储单元,所述目标键存储单元的指针指向所述目标值存储单元。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述共享内存划分为所述哈希存储区域、所述键存储区域和所述值存储区域;
向所述哈希存储区域的每个存储单元分别写入不同的预设哈希值,得到多个哈希存储单元;
将所述键存储区域的存储单元确定为键存储单元;
将所述值存储区域的存储单元确定为值存储单元。
3.根据权利要求2所述的方法,其特征在于,所述哈希存储区域包括N个存储单元,所述预设哈希值包括0到N-1,N为不小于2的正整数;
所述键数据的哈希值为所述键数据对N取模。
4.根据权利要求1所述的方法,其特征在于,所述目标键存储单元通过以下步骤确定:
在所述键存储区域中将一空闲的键存储单元确定为所述目标键存储单元;
将所述目标键存储单元关联至所述目标哈希存储单元。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标键存储单元关联至所述目标哈希存储单元,包括:
将所述目标键存储单元添加至所述目标哈希存储单元的指针所指向的单向链表。
6.根据权利要求4所述的方法,其特征在于,所述键存储区域中包括一空闲键指示单元,所述空闲键指示单元的指针指向第一个空闲的键存储单元,所述空闲的键存储单元的任意两个相邻单元中前一个单元的指针指向后一个单元。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述目标键存储单元中的键数据被删除时,解除所述目标键存储单元和所述目标哈希存储单元的关联。
8.根据权利要求1所述的方法,其特征在于,所述目标值存储单元通过以下步骤确定:
根据所述值数据的数据量确定所需的值存储单元数量,在所述值存储区域中将对应数量的空闲的值存储单元确定为所述目标值存储单元;
将所述目标键存储单元的指针指向所述目标值存储单元中的第一个单元,所述目标值存储单元的任意两个相邻单元中前一个单元的指针指向后一个单元。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述目标值存储单元中的值数据被删除时,解除由所述目标键存储单元指向所述目标值存储单元的指针。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
当对所述共享内存中的数据进行操作时,将操作信息记录到操作日志中;
当所述共享内存发生异常时,根据所述操作日志恢复所述共享内存中的数据。
11.根据权利要求1所述的方法,其特征在于,所述共享内存包括第一共享内存和第二共享内存;
所述方法还包括:
将所述第一共享内存和第二共享内存之一作为写入共享内存,另一作为读取共享内存;
当有数据读取请求时,从所述读取共享内存读取数据;
当有数据更新请求时,将更新后的数据写入所述写入共享内存,并将所述写入共享内存作为新的读取共享内存,将所述读取共享内存作为新的写入共享内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910506763.6/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置