Redis的跳跃表

跳跃表节点

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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值