[发明专利]一种数据存取方法及装置有效

专利信息
申请号: 201410040329.0 申请日: 2014-01-27
公开(公告)号: CN104809135B 公开(公告)日: 2019-01-11
发明(设计)人: 谢立强 申请(专利权)人: 腾讯科技(深圳)有限公司
主分类号: G06F16/22 分类号: G06F16/22
代理公司: 广州三环专利商标代理有限公司 44202 代理人: 贾允;肖丁
地址: 518044 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 数据 存取 方法 装置
【说明书】:

一种数据存取方法,包括:在存储器中构建哈希桶和链表,接收存储数据的指令并获取要存储的对象,新分配一个链表的节点,并在该节点内写入该对象的序列号以及过期时间,将该节点插入到该链表中对应的位置使该链表中所有节点按照过期时间排序,根据该序列号获取一个索引值,将该对象以及该节点的地址存储在该哈希桶中下标为该索引值的位置。还提供一种数据存取装置,上述方法及装置可实现对数据高效的添加、查找、删除操作,以及实现高效的状态机超时检测操作。

技术领域

发明涉及数据处理领域,尤其涉及一种数据存取方法及装置。

背景技术

在服务器模块开发过程中,经常会用到状态机,状态机对应的是一个数据结构,状态机的每一个状态的变化都是由于网络收发引起的,而在全异步的服务器模型中,为了实现IO复用,映射关系频繁被使用,并且服务器需要感知到状态机的超时。

现有技术中,标准模板库(STL,Standard Template Library)是C++标准库里的一个数据结构,内部是由红黑树实现的。

在以上现有技术中,数据处理效率低,需要平衡树结构,哈希算法选择不适当,会造成冲突较多,并且检测状态机超时需要遍历全部元素,检测效率低。

发明内容

有鉴于此,本发明提供一种数据存取方法及装置,可实现对数据高效的存取操作。

本发明实施例提供的数据存取方法,包括:

在存储器中构建哈希桶和链表;

接收存储数据的指令并获取要存储的对象;

新分配一个链表的节点,并在所述节点内写入所述对象的序列号以及过期时间;

将所述节点插入到所述链表中对应的位置使所述链表中所有节点按照过期时间排序;

根据所述序列号获取一个索引值;

将所述对象以及所述节点的地址存储在所述哈希桶中下标为所述索引值的位置。

本发明实施例提供的数据存取装置,包括:

构建模块,用于在存储器中构建哈希桶和链表;

第一获取模块,用于接收存储数据的指令并从所述指令中获取要存储的对象;

链表存储模块,用于新分配一个链表的节点模块,并在所述节点内写入所述对象的序列号以及过期时间;

链表排序模块,用于将所述节点插入到所述链表中对应的位置使所述链表中所有节点按照过期时间排序;

索引值获取模块,用于根据所述序列号获取一个索引值;

存储模块,用于将所述对象以及所述节点的地址存储在所述哈希桶中下标为所述索引值的位置。

本发明实施例提供的数据存取方法及装置,通过在互相可定位的哈希桶和链表组成的数据结构中,在链表中存储节点以及节点对应的数据,并根据存储位置生成索引值,以在哈希桶中快速定位需要处理的对象,用以实现高效的添加操作。并且,可以快速查找到过期的节点,提高处理过期节点的效率。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

图1为计算装置的一个实施例的结构框图。

图2为第一实施例提供的数据存取方法流程图。

图3为第一实施例的方法中采用的哈希桶与链表的存储结构示意图。

图4为第二实施例提供的数据存取方法流程图。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410040329.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top