Redis的跳跃表
程序员文章站
2024-03-17 18:54:58
...
跳跃表节点
typedef struct zskiplistNode {
struct zskiplistLevel {
struct zskiplistNode *forward;//前进指针
unsigned int span;//跨度 用来计算排位
} level[];//层(层高1~32随机,一般层数量越多,访问其他节点速度越快)
struct zskiplistNode *backward;//后退指针 只能退至前一个节点
double score;//分值 所有节点按分值从小到大排序
robj *obj;//成员对象 各个节点保存的成员对象必须唯一,多个节点保存的分值可以相同,相同的按对象的字典序从小到大排
}zskiplistNode;
跳跃表
跳跃表是一种有序数据结构,通过在每个节点中维持多个指向其他节点的指针,达到快速访问节点的目的。在效率上,很多时候可以与平衡树相媲美。
Redis在实现有序集合键,以及在集群节点中用作内部数据结构中使用。
typedef struct zskiplist {//用来方便地对跳跃表进行处理
struct zskiplistNode *header;//表头节点
struct zskiplistNode *tail;//表尾节点
unsigned long length;//表中节点的数量
int level;//表中层数最大的节点的层数(表头节点不算在内)
}zskiplist;
上一篇: python redis详解(七)ZSET有序集合
下一篇: 基于有序链表实现的优先队列
推荐阅读
-
Redis的跳跃表
-
51nod 1010 只包含因子2 3 5的数 打表
-
数据库分表分库及分表分库带来的问题
-
值得关注的键值数据库redis 博客分类: chaos RedisFreeBSDPythonGitPHP
-
跑的好好的 Java 进程,怎么突然就瘫痪了 redis
-
太感动了,redis,你是我的救星 博客分类: 架构/综合 Redis互联网编程
-
oa信用盘源码搭建修复 安全地使用redis的pop命令 redis
-
redis的三种集群方式 博客分类: redis redis
-
redis 五种数据类型的使用场景 博客分类: Nosql redis
-
读写分离的java redis 接口 springjavaredis