redis
Jin_of_Tide
这个作者很懒,什么都没留下…
展开
-
1、简单动态字符串
参考书本 《Redis设计与实现》SDS的概念Redis没有直接使用c语言中的字符串,而是自己定义了一种简单动态字符串(SDS)的抽象类型,SDS作为redis的默认字符串表示SDS的结构 SDS的由三部分组成,分别为:保存字符串长度的int len,保存未使用字节数量的int free,存储字符串的字节数组。如下:struct sdshdr{ int len; //b...原创 2018-07-11 16:43:17 · 1447 阅读 · 0 评论 -
2、链表
链表节点和链表链表节点typeof struct listNode{ struct listNode *prev; //前置节点 struct listNode *next; //后置节点 void *value; //节点的值 }链表typeof struct list{ listNode *head; //头结点 listNode *ta...原创 2018-07-11 17:00:09 · 75 阅读 · 0 评论 -
3、字典
概念一种用于保存键值对的抽象数据结构。又常被称作 符号表、关联数组、映射。Redis的数据库就是使用字典作为底层实现的、字典还是哈希键的底层实现之一。实现由于字典底层是有哈希表(分清哈希表和哈希键)实现,首先介绍哈希表1、哈希表typedef struct dictht{ dictEntry **table; //指向哈希表数组 unsigned long size;...原创 2018-07-11 18:10:20 · 97 阅读 · 0 评论 -
4、跳跃表
概念跳跃表是一种有序的数据结构,它通过在每个节点维护多个指向其他节点的指针,以达到快速访问的目的。跳跃表支持平均O(logN)最坏O(N)的复杂度查找节点。大多数情况下,其性能可以和平衡树媲美。跳跃表是有序集合键的底层实现之一,如果有序集合键包含的元素较多,或者成员是比较常的字符串的时候。Redis只有两个地方使用到了跳跃表:有序集合键、集群节点中用作内部数据结构。结构描述描述节点相关信息的zsk...原创 2018-07-11 20:18:10 · 144 阅读 · 0 评论