一种读写操作方法及装置的制造方法

文档序号:9396937阅读:139来源:国知局
一种读写操作方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机应用技术领域,尤其涉及一种读写操作方法及装置。
【背景技术】
[0002] 随着大数据时代的到来,如何从海量的数据信息中快速获取信息,如何构建高效、 稳定的存储系统都是亟待解决的问题。目前的存储系统多用键-值(Key-Value)对的数据 结构构建,其中,键也称关键字。Key-Value查询速度快、支持高并发、存放数据量大,非常 适合通过Key进行查询。哈希索引(Hash Table)与链表的结合是存储键-值对的一种常 见的数据结构,若链表存储的键-值对的数量为N,哈希索引的表长(即模)为M,读写一个 键-值对的平均时间复杂度为〇 (N/M)。当键-值对的数量达到百万级别甚至千万级别时导 致读写存储系统的平均时间复杂度的上升,会成为制约数据读写的瓶颈,从而可知,对哈希 索引与链表的读写操作是存储系统的应用的瓶颈。因此,在存储系统规模不断增大的情况 下保证存储系统的高效工作是一个值得研究的问题。

【发明内容】

[0003] 本发明提供一种读写操作方法及装置,可提高读写存储系统的速度,降低读写存 储系统的平均时间复杂度。
[0004] 本发明第一方面提供一种读写操作方法,包括:
[0005] 获取读写请求,所述读写请求包括关键字;
[0006] 根据所述关键字确定所述关键字在哈希索引中的哈希地址,所述哈希地址用于指 示红黑树;
[0007] 根据所述哈希地址确定所述红黑树,在所述红黑树中查找所述关键字;
[0008] 根据查找结果以及所述读写请求对所述红黑树进行读写操作。
[0009] 结合本发明第一方面的实现方式,在本发明第一方面的第一种可能的实现方式 中,所述读写请求用于请求获取所述关键字对应的第一值,则所述根据查找结果以及所述 读写请求对所述红黑树进行读写操作,包括:
[0010] 当在所述红黑树中查找到所述关键字时,根据所述读写请求从所述红黑树获取所 述关键字对应的第一值。
[0011] 结合本发明第一方面的实现方式,在本发明第一方面的第二种可能的实现方式 中,所述读写请求还包括所述关键字对应的第一值,所述读写请求用于请求插入所述关键 字以及所述关键字对应的第一值,则所述根据查找结果以及所述读写请求对所述红黑树进 行读写操作,包括:
[0012] 当在所述红黑树中没有查找到所述关键字时,根据所述读写请求在所述红黑树中 插入所述关键字以及所述关键字对应的第一值。
[0013] 结合本发明第一方面的实现方式,在本发明第一方面的第三种可能的实现方式 中,所述读写请求用于请求删除所述关键字以及所述关键字对应的第一值,则所述根据查 找结果以及所述读写请求对所述红黑树进行读写操作,包括:
[0014] 当在所述红黑树中查找到所述关键字时,根据所述读写请求在所述红黑树中删除 所述关键字以及所述关键字对应的第一值。
[0015] 结合本发明第一方面的实现方式,在本发明第一方面的第四种可能的实现方式 中,所述读写请求还包括用于替换的第二值,所述读写请求用于请求替换所述红黑树预先 存储的所述关键字对应的第一值,则所述根据查找结果以及所述读写请求对所述红黑树进 行读写操作,包括:
[0016] 当在所述红黑树中查找到所述关键字时,根据所述读写请求将所述用于替换的第 二值与所述红黑树预先存储的所述关键字对应的第一值替换。
[0017] 本发明第二方面提供一种读写操作装置,包括:
[0018] 获取模块,用于获取读写请求,所述读写请求包括关键字;
[0019] 确定模块,用于根据所述获取模块获取的关键字确定所述关键字在哈希索引中的 哈希地址,所述哈希地址用于指示红黑树;
[0020] 查找模块,用于根据所述确定模块确定的哈希地址确定所述红黑树,在所述红黑 树中查找所述关键字;
[0021] 读写操作模块,用于根据所述查找模块的查找结果以及所述读写请求对所述红黑 树进行读写操作。
[0022] 结合本发明第二方面的实现方式,在本发明第二方面的第一种可能的实现方式 中,所述读写请求用于请求获取所述关键字对应的第一值,则所述读写操作模块,具体用 于:
[0023] 当所述查找模块在所述红黑树中查找到所述关键字时,根据所述读写请求从所述 红黑树获取所述关键字对应的第一值。
[0024] 结合本发明第二方面的实现方式,在本发明第二方面的第二种可能的实现方式 中,所述读写请求还包括所述关键字对应的第一值,所述读写请求用于请求插入所述关键 字以及所述关键字对应的第一值,则所述读写操作模块,具体用于:
[0025] 当所述查找模块在所述红黑树中没有查找到所述关键字时,根据所述读写请求在 所述红黑树中插入所述关键字以及所述关键字对应的第一值。
[0026] 结合本发明第二方面的实现方式,在本发明第二方面的第三种可能的实现方式 中,所述读写请求用于请求删除所述关键字以及所述关键字对应的第一值,则所述读写操 作模块,具体用于:
[0027] 当所述查找模块在所述红黑树中查找到所述关键字时,根据所述读写请求在所述 红黑树中删除所述关键字以及所述关键字对应的第一值。
[0028] 结合本发明第二方面的实现方式,在本发明第二方面的第四种可能的实现方式 中,所述读写请求还包括用于替换的第二值,所述读写请求用于请求替换所述红黑树预先 存储的所述关键字对应的第一值,则所述读写操作模块,具体用于:
[0029] 当所述查找模块在所述红黑树中查找到所述关键字时,根据所述读写请求将所述 用于替换的第二值与所述红黑树预先存储的所述关键字对应的第一值替换。
[0030] 采用本发明,获取读写请求,所述读写请求包括关键字,根据所述关键字确定所述 关键字在哈希索引中的哈希地址,所述哈希地址用于指示红黑树,根据所述哈希地址确定 所述红黑树,在所述红黑树中查找所述关键字,根据查找结果以及所述读写请求对所述红 黑树进行读写操作,可将哈希索引与红黑树进行结合组成新的存储结构,加快查找关键字 的速度,降低读写存储系统的平均时间复杂度,进而提高读写存储系统的速度,提升存储系 统的性能。
【附图说明】
[0031] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附 图。
[0032] 图1是本发明实施例的一种读写操作方法的一实施例的流程示意图;
[0033] 图2是本发明实施例的一种读写操作方法的另一实施例的流程示意图;
[0034] 图3是本发明实施例的一种读写操作方法的另一实施例的确定红黑树示意图;
[0035] 图4是本发明实施例的一种读写操作方法的另一实施例的红黑树2的结构示意 图;
[0036] 图5是本发明实施例的一种读写操作方法的另一实施例的流程示意图;
[0037] 图6是本发明实施例的一种读写操作方法的另一实施例的流程示意图;
[0038] 图7是本发明实施例的一种读写操作方法的另一实施例的流程示意图;
[0039] 图8是本发明实施例的一种读写操作装置的结构示意图。
【具体实施方式】
[0040] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0041] 采用本发明实施例,可提高读写存储系统的速度,降低读写存储系统的平均时间 复杂度。
[0042] 请参阅图1,图1是本发明实施例的一种读写操作方法的一实施例的流程示意图。 本发明实施例可通过中央处理器(CPU,Central Processing Unit)来实现。本发明实施例 涉及的哈希索引是根据Key-Value而直接进行访问的数据结构,也就是说,它通过把关键 字(Key)映射到表中一个位置来访问链表中存储的记录,以加快查找的速度。在哈希索引 与链表的结合下,若链表存储的键-值对的数量为N,哈希索引的表长(即模)为M,读写一 个键-值对的平均时间复杂度为〇(N/M)。
[0043] 红黑树是一种自平衡二叉查找树,每个结点都带有颜色属性,其颜色为红色或黑 色。对任何有效的红黑树有如下5个性质:结点是红色或黑色;根结点是黑色;每个叶结点 (空结点)是黑色;每个红色结点的两个子结点都是黑色;从任一结点到其子孙结点的所有 路径上包含相同数目的黑结点。因此,在红黑树上作任何操作都需要满足上述5种性质,由 此才能保证红黑树的平衡。若红黑树存储的键-值对的数量为P,那么仅在红黑树读写一个 键-值对的平均时间复杂度为O(IogP)。
[0044] 如图1所示,本发明实施例的一种读写操作方法的一实施例可以包括以下步骤。
[0045] S100,获取读写请求,所述读写请求包括关键
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1