redis3.0.7源码阅读(七)redis跳跃表

水深无声 2022-07-13 11:58 236阅读 0赞

版本:3.0.7

1.源文件

redis.h

t_zset.c

2.跳跃表数据结构

  1. /*
  2. * 跳跃表节点
  3. */
  4. /* ZSETs use a specialized version of Skiplists */
  5. typedef struct zskiplistNode {
  6. // 成员对象
  7. robj *obj;
  8. // 分值
  9. double score;
  10. // 后退指针
  11. struct zskiplistNode *backward;
  12. // 层
  13. struct zskiplistLevel {
  14. // 前进指针
  15. struct zskiplistNode *forward;
  16. // 跨度
  17. unsigned int span;
  18. } level[];
  19. } zskiplistNode;
  20. /*
  21. * 跳跃表
  22. */
  23. typedef struct zskiplist {
  24. // 表头节点和表尾节点
  25. struct zskiplistNode *header, *tail;
  26. // 表中节点的数量
  27. unsigned long length;
  28. // 表中层数最大的节点的层数
  29. int level;
  30. } zskiplist;

3.内存分布

博主懵逼中

4.一些特性

原文出自: http://blog.csdn.net/daiyudong2020/article/details/54236650

End;

发表评论

表情:
评论列表 (有 0 条评论,236人围观)

还没有评论,来说两句吧...

相关阅读

    相关 redis跳跃详解

    前言 跳跃表是一种有序的数据结构,他通过在每个节点中维护多个指向其它节点的指针,从而达到快速访问节点的目的。跳跃表的查找操作平均时间复杂度为o(logN)。在大部分情况下

    相关 redis 跳跃

    跳跃表 跳跃表是有序集合的底层实现之一, 除此之外它在 Redis 中没有其他应用。 Redis 的跳跃表实现由 zskiplist 和 zskiplistN

    相关 redis学习之跳跃

    跳跃表 跳跃表对于我来说是一个比较陌生的数据结构,因此花了一上午的时间先看了一蛤MIT的公开课。[网易云课堂——MIT跳跃表][MIT] 什么是跳跃表,有一个很简单的例