redis 跳跃表 insert过程
2017-04-10 11:45:36 0 举报
Redis中的跳跃表(skiplist)是一种有序的数据结构,它通过多层链表实现快速查找、插入和删除操作。在插入过程中,首先将新节点插入到跳跃表中的最底层链表中,然后从下往上逐层比较节点的分数和层数,如果新节点的分数小于或等于当前节点的分数,则继续向上比较;否则,将当前节点的下层指针指向新节点,并更新当前节点的层数。重复这个过程,直到找到一个合适的位置来插入新节点。这个过程中,需要确保跳跃表的平衡性,即每个节点的左右子树的高度差不超过1。
作者其他创作
大纲/内容
*backward
......
level[1]
level[0]
update[1]=znode2.level[1]
obj=chenscore=2
obj=nullscore=0
level[2]
znode1
znode2
update[4]=znode1.level[4]
obj=zhangscore=3
length=4
level[3]
length=3
NULL
zskiplist
update[31]=znode0.level[31]
rank[2]=2
*header
level[4]
znode3
*tail
update[0]=znode2.level[0]
level[31]
level=5
rank[4]=1
level[30]
obj=liscore=1
znode0
znode4
update[30]=znode0.level[30]
obj=liuscore=4
level[5]
往跳跃表中插入新节点znode4
update[2]=znode2.level[2]
level=6
0 条评论
下一页