
redis
wbb1395
这个作者很懒,什么都没留下…
展开
-
redis5.0.7zskiplist
typedef struct zskiplistNode { sds ele; double score; struct zskiplistNode *backward; struct zskiplistLevel { struct zskiplistNode *forward; unsigned long span; } ...原创 2020-04-17 16:30:04 · 137 阅读 · 0 评论 -
redis4.0.11字符串
typedef char *sds;虽然它是char指针类型,但是它可以存储非打印字符。sdshdr一共有5个结构体,其中sdshdr5因为可以存储的内容太少不利于扩展,基本上是不用的。一开始看代码的时候就想到一个问题,为什么要有5个结构体,一个结构体不就够用了么?通篇看完所有代码以后发现,划分5个结构体的好处是可以用最适合的内存结构存储字符串,不至于浪费。struct __attri...原创 2018-12-17 21:20:34 · 149 阅读 · 0 评论 -
redis4.0.11字典
typedef struct dictEntry { void *key; union { void *val; uint64_t u64; int64_t s64; double d; } v; struct dictEntry *next;} dictEntry;typedef struct...原创 2018-12-28 17:24:28 · 167 阅读 · 0 评论 -
redis4.0.11双向链表
typedef struct listNode { struct listNode *prev; struct listNode *next; void *value;} listNode;typedef struct listIter { listNode *next; int direction;} listIter;typedef str...原创 2018-12-18 16:51:21 · 270 阅读 · 0 评论 -
redis4.0.11整数集
typedef struct intset { uint32_t encoding; uint32_t length; int8_t contents[];} intset;结构体中定义了编码大小、数据长度以及数据内容。引用自https://redissrc.readthedocs.io/en/latest/compress-datastruct/intse...原创 2019-01-05 01:17:53 · 149 阅读 · 0 评论 -
redis4.0.11ziplist
ziplist通常的内存布局一般是<uint32_t zlbytes> <uint32_t zltail> <uint16_t zllen> <entry> <entry> ... <entry> <uint8_t zlend>,zlbytes表示ziplist占用了多少内存,zltail表示尾结点的偏移量,zl原创 2019-02-01 02:13:29 · 140 阅读 · 0 评论