一个键盘码代码,两只黄鹂名翠柳

redis跳跃表数据结构源码解析

跳跃表,是一种有序的数据结构,可以在一个节点中维护多个执行其他节点的指针,从而快速访问其他节点。大多数情况下跳跃表的效率可以跟平衡树相媲美,并且跳跃表的实现相对简单,redis使用跳跃表做有序集合的底层实现。数据结构redis的跳跃表包含头尾指针、跳跃表的长度以及维护的跳跃表中的最大层数。跳跃表的接点由key、score、前驱节点以及多个后继节点的指针组成。1、跳跃表typedef struct zskiplist {     // 头节点和尾节点     struct zskiplistNode *header, *tail;     // 跳跃表的长 查看全文

Redis主要数据类型的编码

简单动态字符串底层编码整数字符串对象embstr编码的字符串对象简单动态字符串转换long int使用int编码float使用 简单动态字符串编码当使用embstr编码的字符串长度大于39时,转换为简单动态字符串编码列表底层数据结构压缩列表双端链表转换列表元素长度大于64个字节或者列表元素数量大于512压缩列表编码则转换为双端链表Hash底层数据结构压缩列表字典转换列表元素长度大于64个字节或者列表元素数量大于512压缩列表编码则转换为字典集合底层数据结构整数集合,int16 int32 int64字典。存储时字典的key存储集合元素,value存储null转换整数集合转换为字典,存储的整数数量超过512则使用字段有序集合底层数据结构压缩列表跳跃表转换压缩列表编码要求集合元素数量小于128,元素大小小于64字节。不满足这两个条件则转换为跳跃表。 查看全文
加载更多
redis ( 8 )
php ( 6 )
go ( 5 )
源码 ( 5 )
index ( 5 )
ssl ( 4 )
数据结构 ( 4 )
hql ( 3 )
字体 ( 3 )
https ( 3 )
awk ( 3 )
http ( 3 )
测试 ( 2 )
php:// ( 2 )
chrome ( 2 )
链表 ( 2 )
firefox ( 2 )
跳跃表 ( 2 )