本申请实施例提供了红黑树索引生成方法、装置、电子设备及存储介质,在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;将目标结点针对左兄弟结点的联系,以字符的形式记录为第一相对地址;将目标结点针对右兄弟结点的联系,以字符的形式记录为第二相对地址;将目标结点针对父结点的联系,以字符的形式记录为第三相对地址。在内存中以字符的形式记录针对根结点的相对地址,而不是指针,因为字符形式的相对地址的数据量小于指针的数据量,因此可以减少红黑树索引占用的内存空间。
Methods, devices, electronic devices and storage media for index generation of red black tree
【技术实现步骤摘要】
红黑树索引生成方法、装置、电子设备及存储介质
本申请涉及数据存储
,特别是涉及红黑树索引生成方法、装置、电子设备及存储介质。
技术介绍
随着互联网技术的发展,网络中的数据量呈现井喷式的增长,对数据存储技术带来了很大挑战。目前数据库缓存数据采用红黑树建立树索引,在实际应用中,数据库需要建多个红黑树索引。在红黑树结点中有父结点、左兄弟结点、右兄弟结点,树的颜色。数据库中的内存资源是非常宝贵,直接决定了数据的读取速度。现有技术中,红黑树结点中与父结点、左兄弟结点、右兄弟节的关系是通过指针表示的,在64位系统中一个指针需要占用8个字节,3个指针总共需要占用24个字节,在内存比较宝贵的情况下,海量数据会占用大量的内存空间。
技术实现思路
本申请实施例的目的在于提供一种红黑树索引生成方法、装置、电子设备及存储介质,以实现减少索引占用的内存空间。具体技术方案如下:第一方面,本申请实施例提供了一种红黑树索引生成方法,所述方法包括:在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。在一种可能的实施方式中,在所述目标结点为所述红黑树索引的根结点时,所述第三相对地址为空。在一种可能的实施方式中,所述方法还包括:在读取所述目标结点的数据时,获取所述目标结点的针对所述根结点的相对地址,获取所述根结点的真实地址;根据所述根结点的真实地址及所述目标结点的针对所述根结点的相对地址,计算所述目标结点的真实地址;按照所述目标结点的真实地址,读取所述目标结点的数据。在一种可能的实施方式中,在所述获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址之前,所述方法还包括:查询预设可利用空间表,在可用的内存空间中确定用于存储所述目标结点的索引数据的内存空间,得到目标内存空间;所述将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址,包括:在所述目标内存空间中,将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址。在一种可能的实施方式中,所述方法还包括:在删除所述目标结点时,将所述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。在一种可能的实施方式中,所述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。第二方面,本申请实施例提供了一种红黑树索引生成装置,所述装置包括:相对地址获取模块,用于在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;相对地址记录模块,用于将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。在一种可能的实施方式中,在所述目标结点为所述红黑树索引的根结点时,所述第三相对地址为空。在一种可能的实施方式中,所述装置还包括:根结点地址获取模块,用于在读取所述目标结点的数据时,获取所述目标结点的针对所述根结点的相对地址,获取所述根结点的真实地址;真实地址计算模块,用于根据所述根结点的真实地址及所述目标结点的针对所述根结点的相对地址,计算所述目标结点的真实地址;数据读取模块,用于按照所述目标结点的真实地址,读取所述目标结点的数据。在一种可能的实施方式中,所述装置还包括:内存空间申请模块,用于查询预设可利用空间表,在可用的内存空间中确定用于存储所述目标结点的索引数据的内存空间,得到目标内存空间;所述相对地址记录模块,具体用于:在所述目标内存空间中,将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址。在一种可能的实施方式中,所述装置还包括:内存空间释放模块,用于在删除所述目标结点时,将所述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。在一种可能的实施方式中,所述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。第三方面,本申请实施例提供了一种电子设备,包括处理器及存储器;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的红黑树索引生成方法。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的红黑树索引生成方法。本申请实施例提供的红黑树索引生成方法、装置、电子设备及存储介质,在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;将目标结点针对左兄弟结点的联系,以字符的形式记录为第一相对地址;将目标结点针对右兄弟结点的联系,以字符的形式记录为第二相对地址;将目标结点针对父结点的联系,以字符的形式记录为第三相对地址。在内存中以字符的形式记录针对根结点的相对地址,而不是指针,因为字符形式的相对地址的数据量小于指针的数据量,因此可以减少红黑树索引占用的内存空间。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例的红黑树索引生成方法的第一种示意图;图2为本申请实施例的内存空间中记录的数据变化的一种示意图;图3为本申请实施例的红黑树索引的二叉查找树的一种示意图;图4为本申请实施例的结点数据读取方法的一种示意图;图5为本申请实施例的红黑树索引生成方法的第二种示意图本文档来自技高网...
【技术保护点】
1.一种红黑树索引生成方法,其特征在于,所述方法包括:/n在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;/n将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。/n
【技术特征摘要】
1.一种红黑树索引生成方法,其特征在于,所述方法包括:
在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;
将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。
2.根据权利要求1所述的方法,其特征在于,在所述目标结点为所述红黑树索引的根结点时,所述第三相对地址为空。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在读取所述目标结点的数据时,获取所述目标结点的针对所述根结点的相对地址,获取所述根结点的真实地址;
根据所述根结点的真实地址及所述目标结点的针对所述根结点的相对地址,计算所述目标结点的真实地址;
按照所述目标结点的真实地址,读取所述目标结点的数据。
4.根据权利要求1所述的方法,其特征在于,在所述获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址之前,所述方法还包括:
查询预设可利用空间表,在可用的内存空间中确定用于存储所述目标结点的索引数据的内存空间,得到目标内存空间;
所述将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址,包括:
在所述目标内存空间中,将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在删除所述目标结点时,将所述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。
6.根据权利要求1-5任一所述的方法,其特征在于,所述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。
7.一种红黑树索引生成装置,其特征在于,所述装置包括:
相对地址获取模块,用于在红黑树索引生成的过程中,获取当...
【专利技术属性】
技术研发人员:邱海港,
申请(专利权)人:北京金山云网络技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。