Redis学习笔记2(跳跃表)

Redis使用跳跃表实现有序集合,提供平均logN、最坏O(n)复杂度的节点查找。跳跃表由多个层级的节点组成,层级越高访问速度越快。每个节点包含分值、成员对象和多层前进指针,便于双向遍历。整数集合是集合键的另一种实现,当元素为整数且数量不多时采用。添加新元素可能导致整数集合升级,升级过程虽耗时但能灵活适应不同整数类型并节省内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跳跃表

跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其它节点的指针,从而达到快速访问节点的目的

跳跃表支持平均 l o g N logN logN、最坏O(n)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。

在大部分情况下,跳跃表的效率可以和平衡树媲美,并且因为跳跃表的实现比平衡树简单,很多程序用跳跃表代替平衡树

Redis使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iMNICvUS-1637498344938)(C:\Users\VV\AppData\Roaming\Typora\typora-user-images\image-20211121153457512.png)]

fruit-price有序集合的所有数据都保存在一个跳跃表里面,每个跳跃表节点都保存了一款水果价钱信息,所有水果按价钱的高低从低到高在跳跃表里面排序:

  • 跳跃表的第一个元素的成员为"banana",它的分值为5;
  • 跳跃表的第二个元素的成员为"cherry",它的分值为6.5;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独一无二的VV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值