redis源码
KDoo
Javaer
展开
-
Redis源码(二)——链表
一、简介 作为一种常用数据结构,Redis使用的C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。 链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。 二、实现 单个链表节点: typedef struct listNode { struct listNode *prev;//前置节点 struct listNode *next原创 2020-12-01 15:13:39 · 96 阅读 · 0 评论 -
Redis源码(一)——字符串sds
一、简介 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。 在redis中只有无需对字符串进行修改的地方会使用C字符串,如打印日志。 其他如键值对,键和值都是SDS。 eg: redis> SET msg "hello world" OK 键值对的键"msg"和值"hello world"底层实现都是SDS。 二、定义 1)3.2原创 2020-11-27 14:34:28 · 234 阅读 · 0 评论