【技术实现步骤摘要】
哈希表处理方法及装置
[0001]本申请涉及计算机
,特别涉及哈希表处理方法及装置。
技术介绍
[0002]随着互联网技术的发展,哈希表作为一种key和value存储的数据结构,在程序编程中有着大量的应用,其特点是利用空间换取时间,通过哈希函数计算key的哈希值,快速查表定位到所在位置,得到value。哈希表在各种语言标准库中都有提供,但是它们考虑的更多是本地环境下的查询效率,当使用者想把一个哈希表从一个进程迁移到另外一个进程的时候,只能遍历哈希表的每一个key和value进行序列化编码,然后通过网络传输到另外一个进程,再次遍历进行反序列化。但是,由于运行环境的影响,内存的申请和释放会造成内存碎片问题,致使需要额外的计算资源进行维护,同时,序列化和反序列化的耗时也会较大。因此亟需一种有效的方案以解决上述问题。
技术实现思路
[0003]有鉴于此,本申请实施例提供了一种哈希表处理方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了一种哈希表处理装置,一种计算设备,以及一种计算机可读存储介质。
[0004]根据本申请实施例的第一方面,提供了一种哈希表处理方法,包括:
[0005]获取哈希表创建请求,所述哈希表创建请求中携带哈希表容量信息;
[0006]根据所述哈希表容量信息和所述哈希表创建请求关联的存储数据类型,计算内存空间信息;
[0007]响应于所述哈希表创建请求,按照所述内存空间信息在内存中申请连续内存作为哈希表数据块;
[0008]在接收到针对 ...
【技术保护点】
【技术特征摘要】
1.一种哈希表处理方法,其特征在于,包括:获取哈希表创建请求,所述哈希表创建请求中携带哈希表容量信息;根据所述哈希表容量信息和所述哈希表创建请求关联的存储数据类型,计算内存空间信息;响应于所述哈希表创建请求,按照所述内存空间信息在内存中申请连续内存作为哈希表数据块;在接收到针对所述哈希表数据块关联的哈希表提交的操作请求的情况下,根据所述操作请求对所述哈希表进行更新。2.根据权利要求1所述的方法,其特征在于,所述响应于所述哈希表创建请求,按照所述内存空间信息在内存中申请连续内存作为哈希表数据块步骤执行之后,还包括:对所述连续内存中的冗余数据进行删除处理,以及初始化所述哈希表对应的哈希表信息;其中,所述哈希表信息包括哈希表空闲槽索引信息和哈希表已用槽数量信息。3.根据权利要求1所述的方法,其特征在于,所述响应于所述哈希表创建请求,按照所述内存空间信息在内存中申请连续内存作为哈希表数据块步骤执行之后,还包括:根据所述哈希表容量信息确定所述哈希表对应的哈希值范围;确定所述哈希表包含的数据槽位,并根据所述哈希值范围创建所述数据槽位对应的索引信息。4.根据权利要求1所述的方法,其特征在于,所述根据所述操作请求对所述哈希表进行更新,包括:在所述操作请求为数据插入请求的情况下,确定所述数据插入请求中携带的第一数据索引信息和第一数据;通过哈希函数计算所述第一数据索引信息对应的第一哈希值;在所述哈希表中确定所述第一哈希值关联的第一槽位,并将所述第一数据写入所述第一槽位,作为对所述哈希表的更新。5.根据权利要求4所述的方法,其特征在于,所述在所述哈希表中确定所述第一哈希值关联的第一槽位,包括:在所述哈希表中确定所述第一哈希值对应的第二槽位,并检测所述第二槽位的存储状态;在所述第二槽位的存储状态为空闲状态的情况下,将所述第二槽位作为所述第一槽位;在所述第二槽位的存储状态为占用状态的情况下,在所述哈希表中确定第一空闲槽位,并根据所述第一空闲槽位确定所述第一槽位。6.根据权利要求5所述的方法,其特征在于,所述根据所述第一空闲槽位确定所述第一槽位,包括:确定所述第二槽位关联的第二数据索引信息对应的第二哈希值,并将所述第二哈希值与所述第一哈希值进行比较;在所述第二哈希值与所述第一哈希值相同的情况下,根据所述第二槽位和所述第一空闲槽位组成第一链表,并将所述第一链表中的空闲槽位作为所述第一槽位;在所述第二哈希值与所述第一哈希值不相同的情况下,将所述第二槽位中存储的占位
数据写入所述第一空闲槽位,并根据写入结果将所述第二槽位作为第一槽位。7.根据权利要求1所述的方法,其特征在于,所述根据所述操作请求对所述哈希表进行更新,包括:在所述操作请求为数据查询请求的情况下,确定所述数据查询请求携带的第三数据索引信息,并通过哈希函数计算所...
【专利技术属性】
技术研发人员:钟俊奇,邓勇,黄照荣,
申请(专利权)人:珠海金山数字网络科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。