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

redis链表数据结构及源码解析

链表在redis中使用非常频繁,常用的list数据就是使用链表数据结构,除此之外,还有发布与订阅、监视器也用到了链表。数据结构redis的链表由多个链表节点组成,每个链表节点分别保存了前驱和后继节点,形成了一个双向链表。最终的链表会包含一个头节点、尾节点以及链表长度。具体定义如下。1、链表节点typedef struct listNode {     // 前驱节点     struct listNode *prev;     // 后继节点     struct listNode *next; &nbs 查看全文

redis字典数据结构源码解析

字典,又称关联数组或者映射,是用于保存键值对的数据结构,字典中的每一个key都是唯一的。通常用作hash类型和string类型的数据存储结构。数据结构redis的字典是由两张hash表组成的,以用户字典的扩容,hash表的基本数据类型是hash表节点。具体定义如下。1、字典typedef struct dict {     dictType *type;     // 保存了type中需要用的私有数据     void *privdata;     // ht[0]用来正常访问,ht[1]用来rehashing   查看全文

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

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

redis整数集合数据结构源码解析

整数集合是集合键的底层实现之一,当一个集合只包含整数时,redis会使用整数集合作为集合的底层实现,整数集合类型会尽可能的节约内存空间,只有新插入的数据大于encoding时,才会升级集合类型。数据结构整数集合的定义包含三个部分,encoding表示集合元素的数据类型,length表示集合包含多少元素,contents存储集合成员的一段连续的地址空间。1、整数集合typedef struct intset {     // 集合的编码,可以为16 32 64位的整数类型     uint32_t encoding;     // 集合长度  & 查看全文
加载更多
php ( 6 )
redis ( 5 )
源码 ( 5 )
index ( 5 )
ssl ( 4 )
数据结构 ( 4 )
字体 ( 3 )
https ( 3 )
awk ( 3 )
http ( 3 )
hql ( 3 )
php:// ( 2 )
chrome ( 2 )
firefox ( 2 )
测试 ( 2 )
phantomJS ( 1 )
http2 ( 1 )