[发明专利]键值数据存储方法、装置、存储介质与电子设备在审
申请号: | 201910506763.6 | 申请日: | 2019-06-12 |
公开(公告)号: | CN111177143A | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 李辉 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 深圳市隆天联鼎知识产权代理有限公司 44232 | 代理人: | 刘抗美 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 键值 数据 存储 方法 装置 介质 电子设备 | ||
本公开提供了一种键值数据存储方法、键值数据存储装置、计算机可读存储介质与电子设备,属于数据处理技术领域。该方法包括:获取待存储数据,包括成对的键数据和值数据;根据所述键数据的哈希值,在共享内存的哈希存储区域中确定所述键数据对应的目标哈希存储单元;将所述键数据存储至所述共享内存的键存储区域中的目标键存储单元,所述目标键存储单元与所述目标哈希存储单元具有关联;将所述值数据存储至所述共享内存的值存储区域中的目标值存储单元,所述目标键存储单元的指针指向所述目标值存储单元。本公开能够解决共享内存场景下无法有效存储键值数据的问题,有利于不同的业务进程间的数据共享,提高效率。
技术领域
本公开涉及数据处理技术领域,尤其涉及一种键值数据存储方法、键值数据存储装置、计算机可读存储介质与电子设备。
背景技术
共享内存作为计算机中一种大容量内存,方便业务进程加载和使用位于其中的数据,在业务进程重新启动后,共享内存中的数据仍然能够维持,从而提高数据使用的效率。然而,共享内存作为一维地址的存储空间,难以直接存储复杂的数据结构;特别是在搜索等领域,有大量的键值(key-value,KV)数据,例如某篇文章对应的特征数据等,这些数据经常占用数GB甚至数十GB的内存。因此,如何在共享内存中存储键值数据,是现有技术亟待解决的问题。
现有的键值数据存储方案主要分为两种:第一种是基于第三方的组件部署独立的键值数据存储服务,第三方组件如Redis、Memcached(Redis和Memcached都是常用的键值数据库)等,通过网络访问来提供键值数据存储;第二种是基于标准容器的Map存储(Map是一种将键对象和值对象进行关联的容器),Map将键值数据存储在内存中,业务进程在内存创建Map对象,然后从磁盘上加载数据到内存中,解析数据为键值形式,插入到Map对象中。
然而,在上述第一种方案中,如果业务进程需要一次性访问大量键值数据,会导致多次的网络访问,引发大数据量的网络传输,造成网络侧的访问延时和传输延时;在上述第二种方案中,需要业务进程维护键值数据的加载,对于数据量较大的键值数据,如果每次业务进程在启动时都进行数据加载,会导致较长的启动时间,严重影响在线服务的可靠性和稳定性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种键值数据存储方法、键值数据存储装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善现有技术无法在共享内存中有效存储键值数据的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种键值数据存储方法,包括:获取待存储数据,包括成对的键数据和值数据;根据所述键数据的哈希值,在共享内存的哈希存储区域中确定所述键数据对应的目标哈希存储单元;将所述键数据存储至所述共享内存的键存储区域中的目标键存储单元,所述目标键存储单元与所述目标哈希存储单元具有关联;将所述值数据存储至所述共享内存的值存储区域中的目标值存储单元,所述目标键存储单元的指针指向所述目标值存储单元。
可选的,所述方法还包括:将所述共享内存划分为所述哈希存储区域、所述键存储区域和所述值存储区域;向所述哈希存储区域的每个存储单元分别写入不同的预设哈希值,得到多个哈希存储单元;将所述键存储区域的存储单元确定为键存储单元;将所述值存储区域的存储单元确定为值存储单元。
可选的,所述哈希存储区域包括N个存储单元,所述预设哈希值包括0到N-1,N为不小于2的正整数;所述键数据的哈希值为所述键数据对N取模。
可选的,所述目标键存储单元通过以下步骤确定:在所述键存储区域中将一空闲的键存储单元确定为所述目标键存储单元;将所述目标键存储单元关联至所述目标哈希存储单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910506763.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置