跳跃表原来就是这玩意儿?

今天在回顾关于 Redis 的5种数据类型的时候,发现 zset 的底层数据结构可以是跳跃表。我之前对跳跃表不太熟,趁现在记得就写一篇文章来把记得的东西写下来,方便复习。

我们先看这么一个例子:

假如这个是一个链表,我想查到“9”的数据,请问要查询几次?

8次!这个懂吧。

但是,我想查询的再快一点,也就是说有没有更快的查询到“9”这个数据的方法呢?

有的!

我可以这个样子:

0——2——6——8——10——9

从0开始,只需要查5次。

可以更快吗?可以的!

再加一层:

0——6——10——8——9

从0开始,只需要查4次。

那还可以更快吗?再加一层:

0——10——6——8——9

从0开始,只需要查4次。

已经是最极限的优化了,没办法再加了。

所以说,Redis “快”的原因就是因为它底层的数据结构,正是因为这些数据结构,才支持 Redis 这么“快”!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值