CN111026762A - 红黑树索引生成方法、装置、电子设备及存储介质 - Google Patents
红黑树索引生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111026762A CN111026762A CN201911276824.0A CN201911276824A CN111026762A CN 111026762 A CN111026762 A CN 111026762A CN 201911276824 A CN201911276824 A CN 201911276824A CN 111026762 A CN111026762 A CN 111026762A
- Authority
- CN
- China
- Prior art keywords
- node
- relative address
- target node
- recording
- aiming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了红黑树索引生成方法、装置、电子设备及存储介质,在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;将目标结点针对左兄弟结点的联系,以字符的形式记录为第一相对地址;将目标结点针对右兄弟结点的联系,以字符的形式记录为第二相对地址;将目标结点针对父结点的联系,以字符的形式记录为第三相对地址。在内存中以字符的形式记录针对根结点的相对地址,而不是指针,因为字符形式的相对地址的数据量小于指针的数据量,因此可以减少红黑树索引占用的内存空间。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及红黑树索引生成方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,网络中的数据量呈现井喷式的增长,对数据存储技术带来了很大挑战。
目前数据库缓存数据采用红黑树建立树索引,在实际应用中,数据库需要建多个红黑树索引。在红黑树结点中有父结点、左兄弟结点、右兄弟结点,树的颜色。数据库中的内存资源是非常宝贵,直接决定了数据的读取速度。现有技术中,红黑树结点中与父结点、左兄弟结点、右兄弟节的关系是通过指针表示的,在64位系统中一个指针需要占用8个字节,3个指针总共需要占用24个字节,在内存比较宝贵的情况下,海量数据会占用大量的内存空间。
发明内容
本申请实施例的目的在于提供一种红黑树索引生成方法、装置、电子设备及存储介质,以实现减少索引占用的内存空间。具体技术方案如下:
第一方面,本申请实施例提供了一种红黑树索引生成方法,所述方法包括:
在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;
将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。
在一种可能的实施方式中,在所述目标结点为所述红黑树索引的根结点时,所述第三相对地址为空。
在一种可能的实施方式中,所述方法还包括:
在读取所述目标结点的数据时,获取所述目标结点的针对所述根结点的相对地址,获取所述根结点的真实地址;
根据所述根结点的真实地址及所述目标结点的针对所述根结点的相对地址,计算所述目标结点的真实地址;
按照所述目标结点的真实地址,读取所述目标结点的数据。
在一种可能的实施方式中,在所述获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址之前,所述方法还包括:
查询预设可利用空间表,在可用的内存空间中确定用于存储所述目标结点的索引数据的内存空间,得到目标内存空间;
所述将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址,包括:
在所述目标内存空间中,将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址。
在一种可能的实施方式中,所述方法还包括:
在删除所述目标结点时,将所述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。
在一种可能的实施方式中,所述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。
第二方面,本申请实施例提供了一种红黑树索引生成装置,所述装置包括:
相对地址获取模块,用于在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;
相对地址记录模块,用于将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。
在一种可能的实施方式中,在所述目标结点为所述红黑树索引的根结点时,所述第三相对地址为空。
在一种可能的实施方式中,所述装置还包括:
根结点地址获取模块,用于在读取所述目标结点的数据时,获取所述目标结点的针对所述根结点的相对地址,获取所述根结点的真实地址;
真实地址计算模块,用于根据所述根结点的真实地址及所述目标结点的针对所述根结点的相对地址,计算所述目标结点的真实地址;
数据读取模块,用于按照所述目标结点的真实地址,读取所述目标结点的数据。
在一种可能的实施方式中,所述装置还包括:
内存空间申请模块,用于查询预设可利用空间表,在可用的内存空间中确定用于存储所述目标结点的索引数据的内存空间,得到目标内存空间;
所述相对地址记录模块,具体用于:在所述目标内存空间中,将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址。
在一种可能的实施方式中,所述装置还包括:
内存空间释放模块,用于在删除所述目标结点时,将所述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。
在一种可能的实施方式中,所述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。
第三方面,本申请实施例提供了一种电子设备,包括处理器及存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的红黑树索引生成方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的红黑树索引生成方法。
本申请实施例提供的红黑树索引生成方法、装置、电子设备及存储介质,在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;将目标结点针对左兄弟结点的联系,以字符的形式记录为第一相对地址;将目标结点针对右兄弟结点的联系,以字符的形式记录为第二相对地址;将目标结点针对父结点的联系,以字符的形式记录为第三相对地址。在内存中以字符的形式记录针对根结点的相对地址,而不是指针,因为字符形式的相对地址的数据量小于指针的数据量,因此可以减少红黑树索引占用的内存空间。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的红黑树索引生成方法的第一种示意图;
图2为本申请实施例的内存空间中记录的数据变化的一种示意图;
图3为本申请实施例的红黑树索引的二叉查找树的一种示意图;
图4为本申请实施例的结点数据读取方法的一种示意图;
图5为本申请实施例的红黑树索引生成方法的第二种示意图;
图6为本申请实施例的红黑树索引生成方法的第三种示意图;
图7为本申请实施例的红黑树索引生成方法装置的一种示意图;
图8为本申请实施例的电子设备的一种示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请实施例中的相关术语进行解释:
Red Black Tree(红黑树):是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。
Root Node(根结点):是红黑树索引的一个组成部分,也叫树根。所有非空的二叉树中,都有且仅有一个根结点,它是同一棵树中除本身外所有结点的祖先,没有父结点。
为了减少红黑树索引占用的内存空间,本申请实施例提供了一种红黑树索引生成方法,该方法包括:
在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对上述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址。
将上述目标结点针对左兄弟结点的联系,以字符的形式记录为上述第一相对地址;将上述目标结点针对右兄弟结点的联系,以字符的形式记录为上述第二相对地址;将上述目标结点针对父结点的联系,以字符的形式记录为上述第三相对地址。
在本申请实施例中,在内存中以char(字符)的形式记录针对根结点的相对地址,而不是指针,因为字符形式的相对地址的数据量(一般情况下为4个字节)小于指针的数据量(8个字节),因此可以减少红黑树索引占用的内存空间。
下面进行具体说明:
本申请实施例提供了一种红黑树索引生成方法,参见图1,该方法包括:
S101,在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对上述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址。
本申请实施例的红黑树索引生成方法可以通过包括内存的电子设备实现,具体的,该电子设备可以为数据库中的服务器等设备。
当在内存中建立红黑树索引时,将当前需要建立的结点称为目标结点,获取目标结点的左兄弟结点针对该红黑树索引根结点的相对地址,作为第一相对地址;获取目标结点的右兄弟结点针对该红黑树索引根结点的相对地址,作为第二相对地址;获取目标结点的左兄弟结点针对该红黑树索引根结点的相对地址,作为第三相对地址。
S102,将上述目标结点针对左兄弟结点的联系,以字符的形式记录为上述第一相对地址;将上述目标结点针对右兄弟结点的联系,以字符的形式记录为上述第二相对地址;将上述目标结点针对父结点的联系,以字符的形式记录为上述第三相对地址。
在内存中,记录目标结点针对左兄弟结点的联系为第一相对地址,记录目标结点针对右兄弟结点的联系记录为第二相对地址,记录目标结点针对父结点的联系为第三相对地址。
除了记录目标结点针对左兄弟结点、右兄弟结点及父结点的联系,还可以记录目标结点的color(颜色)、Key值及Data(数据)中的一种或多种。目标结点的颜色、Key值及数据记录方式与现有技术中的记录方式相同,此处不再赘述。
在本申请实施例中,在内存中以char的形式记录针对根结点的相对地址,而不是指针,因为字符形式的相对地址的数据量小于指针的数据量,因此可以减少红黑树索引占用的内存空间。
char形式的相对地址的数据量小于指针的数据量,为了统一相对地址的形式。在一种可能的实施例中,上述第一相对地址、第二相对地址及第三相对地址,采用四字节的字符形式进行记录。
第一相对地址、第二相对地址及第三相对地址可以均采用char[4](四字节的字符)形式进行记录,每个相对地址均占用4个字节的空间,相比于8字节的指针能节约4个字节的空间,一个结点便可以减少12个字节的内存空间。
一般情况下,8个字节的指针可以编译为4个字节的char形式的数据,当然也可以将8个字节的指针编译为5字节、6字节或7字节的char形式进行记录,但是为了达到节省内存空间的目的,应该少于8个字节。
例如图2所示,其中,左边为现有技术中红黑树索引结点的结构,右边为本申请实施中记录的红黑树索引结点的结构。在本申请实施例中,利用char[4]代替现有技术中的指针,每个一个结点可以节约12个字节的内存空间。
在一种可能的实施方式中,在上述目标结点为上述红黑树索引的根结点时,上述第三相对地址为空。
红黑树索引中的根结点没有父结点,因此在目标结点为红黑树索引的根结点时,对应的第三相对地址为空,记录过程中,第三相对地址为空时可以记录为-1,表示没有父结点。
具体的,如图3所示,一个红黑树索引中包括7个结点:0(7),17(5),34(4),51(6),68(9),85(8),102(20),其中,0(7)为根结点;针对每个结点,第一个数字代表针对根结点的相对地址,括号内的值为结点的key值,例如0(7)表示该结点表针对根结点的相对地址(地址偏移)为0,该结点的key值为7。key值为7的结点left[4]存储为17(代表key值为5的结点),right[4]存储为68(代表key值为9的结点),parent[4]存储为-1无结点。key为5结点left[4]存储为34(代表key值为4的结点),right[4]存储为51(代表key值为6的结点),parent[4]存储为0(代表key为7值的结点)。key为9结点left[4]存储为85(代表key为8的结点),right[4]存储为102(代表key值为20的结点),parent[4]存储为0(代表key值为7的结点)。
当读取目标结点的数据时,在一种可能的实施方式中,参见图4,上述方法还包括:
S401,在读取上述目标结点的数据时,获取上述目标结点的针对上述根结点的相对地址,获取上述根结点的真实地址。
S402,根据上述根结点的真实地址及上述目标结点的针对上述根结点的相对地址,计算上述目标结点的真实地址。
S403,按照上述目标结点的真实地址,读取上述目标结点的数据。
例如,读取目标结点的父结点数据,查询得到目标结点针对根结点的相对地址,以下称为目标相对地址,利用目标相对地址及根结点的真实地址,可以计算得到目标结点的真实地址,按照目标结点的真实地址,在内存中读取目标结点的数据。
在本申请实施例中,给出了在内存中读取目标结点的数据的方式,实现了目标结点数据的读取。
在一种可能的实施方式中,在上述获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对上述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址之前,参见图5,上述方法还包括:
S501,查询预设可利用空间表,在可用的内存空间中确定用于存储上述目标结点的索引数据的内存空间,得到目标内存空间。
可以预先在内存中申请一块区域,用于建立红黑树索引,该区域可以通过预设Free List(可利用空间表)进行管理,预设可利用空间表中记录了该区域中内存空间的使用情况。
当建立红黑树索引时,查询预设可利用空间表,在预设可利用空间表记录的空闲内存空间中,选取待建立的红黑树索引对应的数据量大小的内存空间,作为目标内存空间。
上述将上述目标结点针对左兄弟结点的联系记录为上述第一相对地址;将上述目标结点针对右兄弟结点的联系记录为上述第二相对地址;将上述目标结点针对父结点的联系记录为上述第三相对地址,包括。
S502,在上述目标内存空间中,将上述目标结点针对左兄弟结点的联系记录为上述第一相对地址;将上述目标结点针对右兄弟结点的联系记录为上述第二相对地址;将上述目标结点针对父结点的联系记录为上述第三相对地址。
在本申请实施例中,通过预设可利用空间表对内存空间进行管理,方便红黑树索引对应的内存空间的管理。
在一种可能的实施方式中,参见图6,上述方法还包括:
S601,在删除上述目标结点时,将上述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。
在本申请实施例中,在删除目标结点后,目标结点对应的内存空间通过预设可利用空间表进行管理,当建立新的结点时,直接从预设可利用空间表中获取内存空间,内存空间没有释放归还给操作系统,不需要操作系统处理内存,减少因频繁释放内存导致的内存碎片。
本申请实施例还提供了一种红黑树索引生成装置,参见图7,该装置包括:
相对地址获取模块701,用于在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对上述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址。
相对地址记录模块702,用于将上述目标结点针对左兄弟结点的联系,以字符的形式记录为上述第一相对地址;将上述目标结点针对右兄弟结点的联系,以字符的形式记录为上述第二相对地址;将上述目标结点针对父结点的联系,以字符的形式记录为上述第三相对地址。
在一种可能的实施方式中,在上述目标结点为上述红黑树索引的根结点时,上述第三相对地址为空。
在一种可能的实施方式中,上述装置还包括:
根结点地址获取模块,用于在读取上述目标结点的数据时,获取上述目标结点的针对上述根结点的相对地址,获取上述根结点的真实地址。
真实地址计算模块,用于根据上述根结点的真实地址及上述目标结点的针对上述根结点的相对地址,计算上述目标结点的真实地址。
数据读取模块,用于按照上述目标结点的真实地址,读取上述目标结点的数据。
在一种可能的实施方式中,上述装置还包括:
内存空间申请模块,用于查询预设可利用空间表,在可用的内存空间中确定用于存储上述目标结点的索引数据的内存空间,得到目标内存空间。
上述相对地址记录模块702,具体用于:在上述目标内存空间中,将上述目标结点针对左兄弟结点的联系记录为上述第一相对地址;将上述目标结点针对右兄弟结点的联系记录为上述第二相对地址;将上述目标结点针对父结点的联系记录为上述第三相对地址。
在一种可能的实施方式中,上述装置还包括:内存空间释放模块,用于在删除上述目标结点时,将上述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。
在一种可能的实施方式中,上述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。
本申请实施例还提供了一种电子设备,包括:处理器及存储器;
上述存储器,用于存放计算机程序;
上述处理器用于执行上述存储器存放的计算机程序时,实现如下步骤:
在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对上述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;将上述目标结点针对左兄弟结点的联系,以字符的形式记录为上述第一相对地址;将上述目标结点针对右兄弟结点的联系,以字符的形式记录为上述第二相对地址;将上述目标结点针对父结点的联系,以字符的形式记录为上述第三相对地址。
可选的,参见图8,本申请实施例的电子设备还包括通信接口902和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。
可选的,上述处理器用于执行上述存储器存放的计算机程序时,还能够实现上述任一红黑树索引生成方法。
上述电子设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述任一红黑树索引生成方法。
需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (14)
1.一种红黑树索引生成方法,其特征在于,所述方法包括:
在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;
将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。
2.根据权利要求1所述的方法,其特征在于,在所述目标结点为所述红黑树索引的根结点时,所述第三相对地址为空。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在读取所述目标结点的数据时,获取所述目标结点的针对所述根结点的相对地址,获取所述根结点的真实地址;
根据所述根结点的真实地址及所述目标结点的针对所述根结点的相对地址,计算所述目标结点的真实地址;
按照所述目标结点的真实地址,读取所述目标结点的数据。
4.根据权利要求1所述的方法,其特征在于,在所述获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址之前,所述方法还包括:
查询预设可利用空间表,在可用的内存空间中确定用于存储所述目标结点的索引数据的内存空间,得到目标内存空间;
所述将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址,包括:
在所述目标内存空间中,将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在删除所述目标结点时,将所述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。
6.根据权利要求1-5任一所述的方法,其特征在于,所述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。
7.一种红黑树索引生成装置,其特征在于,所述装置包括:
相对地址获取模块,用于在红黑树索引生成的过程中,获取当前待建立的目标结点的左兄弟结点、右兄弟结点及父结点针对所述红黑树索引的根结点的相对地址,依次得到第一相对地址、第二相对地址及第三相对地址;
相对地址记录模块,用于将所述目标结点针对左兄弟结点的联系,以字符的形式记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系,以字符的形式记录为所述第二相对地址;将所述目标结点针对父结点的联系,以字符的形式记录为所述第三相对地址。
8.根据权利要求7所述的装置,其特征在于,在所述目标结点为所述红黑树索引的根结点时,所述第三相对地址为空。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
根结点地址获取模块,用于在读取所述目标结点的数据时,获取所述目标结点的针对所述根结点的相对地址,获取所述根结点的真实地址;
真实地址计算模块,用于根据所述根结点的真实地址及所述目标结点的针对所述根结点的相对地址,计算所述目标结点的真实地址;
数据读取模块,用于按照所述目标结点的真实地址,读取所述目标结点的数据。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
内存空间申请模块,用于查询预设可利用空间表,在可用的内存空间中确定用于存储所述目标结点的索引数据的内存空间,得到目标内存空间;
所述相对地址记录模块,具体用于:在所述目标内存空间中,将所述目标结点针对左兄弟结点的联系记录为所述第一相对地址;将所述目标结点针对右兄弟结点的联系记录为所述第二相对地址;将所述目标结点针对父结点的联系记录为所述第三相对地址。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
内存空间释放模块,用于在删除所述目标结点时,将所述目标结点对应的内存空间,以链表的模式记录到预设可利用空间表中,并标记为可用。
12.根据权利要求7-11任一所述的装置,其特征在于,所述第一相对地址、第二相对地址及第三相对地址,均采用四字节的字符形式进行记录。
13.一种电子设备,其特征在于,包括处理器及存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-6任一所述的红黑树索引生成方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的红黑树索引生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276824.0A CN111026762A (zh) | 2019-12-12 | 2019-12-12 | 红黑树索引生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276824.0A CN111026762A (zh) | 2019-12-12 | 2019-12-12 | 红黑树索引生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111026762A true CN111026762A (zh) | 2020-04-17 |
Family
ID=70206388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911276824.0A Pending CN111026762A (zh) | 2019-12-12 | 2019-12-12 | 红黑树索引生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026762A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000482A (zh) * | 2020-08-25 | 2020-11-27 | 北京金山云网络技术有限公司 | 一种内存管理的方法、装置、电子设备及存储介质 |
CN113946585A (zh) * | 2021-10-28 | 2022-01-18 | 苏州贝塔智能制造有限公司 | 衣物裁片数据索引构建方法、查找方法及裁片分拣方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5261088A (en) * | 1990-04-26 | 1993-11-09 | International Business Machines Corporation | Managing locality in space reuse in a shadow written B-tree via interior node free space list |
US5343559A (en) * | 1988-11-03 | 1994-08-30 | Microcomputer Technical Services Limited | Memory system adapted to store two associated sets of data items |
US5488717A (en) * | 1992-07-06 | 1996-01-30 | 1St Desk Systems, Inc. | MTree data structure for storage, indexing and retrieval of information |
US20020184231A1 (en) * | 2001-06-04 | 2002-12-05 | Baskins Douglas L. | System for and method of cache-efficient digital tree with rich pointers |
US9558297B1 (en) * | 2014-03-27 | 2017-01-31 | EMC IP Holding Company LLC | Memory management techniques |
US20170316041A1 (en) * | 2016-04-29 | 2017-11-02 | Netapp, Inc. | Memory Efficient Lookup Structure |
CN110309368A (zh) * | 2018-03-26 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 数据地址的确定方法、装置、存储介质和电子装置 |
-
2019
- 2019-12-12 CN CN201911276824.0A patent/CN111026762A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5343559A (en) * | 1988-11-03 | 1994-08-30 | Microcomputer Technical Services Limited | Memory system adapted to store two associated sets of data items |
US5261088A (en) * | 1990-04-26 | 1993-11-09 | International Business Machines Corporation | Managing locality in space reuse in a shadow written B-tree via interior node free space list |
US5488717A (en) * | 1992-07-06 | 1996-01-30 | 1St Desk Systems, Inc. | MTree data structure for storage, indexing and retrieval of information |
US20020184231A1 (en) * | 2001-06-04 | 2002-12-05 | Baskins Douglas L. | System for and method of cache-efficient digital tree with rich pointers |
US9558297B1 (en) * | 2014-03-27 | 2017-01-31 | EMC IP Holding Company LLC | Memory management techniques |
US20170316041A1 (en) * | 2016-04-29 | 2017-11-02 | Netapp, Inc. | Memory Efficient Lookup Structure |
CN110309368A (zh) * | 2018-03-26 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 数据地址的确定方法、装置、存储介质和电子装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000482A (zh) * | 2020-08-25 | 2020-11-27 | 北京金山云网络技术有限公司 | 一种内存管理的方法、装置、电子设备及存储介质 |
CN112000482B (zh) * | 2020-08-25 | 2024-03-05 | 北京金山云网络技术有限公司 | 一种内存管理的方法、装置、电子设备及存储介质 |
CN113946585A (zh) * | 2021-10-28 | 2022-01-18 | 苏州贝塔智能制造有限公司 | 衣物裁片数据索引构建方法、查找方法及裁片分拣方法 |
CN113946585B (zh) * | 2021-10-28 | 2022-08-26 | 苏州贝塔智能制造有限公司 | 衣物裁片数据索引构建方法、查找方法及裁片分拣方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205577B (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN110287696B (zh) | 一种反弹shell进程的检测方法、装置和设备 | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
CN112817538B (zh) | 数据处理的方法、装置、设备和存储介质 | |
CN109284273B (zh) | 一种采用后缀数组索引的海量小文件查询方法及系统 | |
CN111026762A (zh) | 红黑树索引生成方法、装置、电子设备及存储介质 | |
WO2021179488A1 (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
CN112417199A (zh) | 遥感影像的检索方法、装置、系统及存储介质 | |
US10719497B2 (en) | Utilization of optimized ordered metadata structure for container-based large-scale distributed storage | |
CN111309677B (zh) | 一种分布式文件系统的文件管理方法及装置 | |
CN116049180A (zh) | 面向Paas平台的租户数据处理方法及装置 | |
CN112000589A (zh) | 一种数据写入方法、数据读取方法、装置及电子设备 | |
CN106055640A (zh) | 缓存的管理方法及系统 | |
CN113419687B (zh) | 一种对象存储方法、系统、设备及存储介质 | |
CN113132241B (zh) | Acl模板动态配置方法及装置 | |
CN110598072B (zh) | 一种特征数据聚合方法及装置 | |
CN115795187A (zh) | 资源访问方法、装置及设备 | |
CN113986828A (zh) | 存储海量文件的方法、装置、电子设备及存储介质 | |
CN111782661A (zh) | 一种数据存储方法、数据查询方法和装置 | |
CN112419058A (zh) | 数据管理方法和装置、存储介质及电子设备 | |
CN113050977B (zh) | 一种数据处理的方法及系统 | |
CN112380174B (zh) | 含删除文件的xfs文件系统解析方法、终端设备及存储介质 | |
CN117762963A (zh) | 分页查询的方法、装置、电子设备及介质 | |
CN117909301B (zh) | 基于索引的对象查询方法、装置、设备及介质 | |
CN110990394A (zh) | 分布式面向列数据库表的行数统计方法、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |