redis 5.0.7 源码阅读——双向链表
redis中动态字符串sds相关的文件为:adlist.h与adlist.c一、数据结构redis里定义的双向链表,与普通双向链表大致相同单个节点:1 typedef struct listNode {2 struct listNode *prev;3
2024-11-07
redis 5.0.7 源码阅读——字典dict
redis中字典相关的文件为:dict.h与dict.c与其说是一个字典,道不如说是一个哈希表。一、数据结构dictEntry 1 typedef struct dictEntry { 2 void *key; 3 union { 4
2024-11-07
redis 5.0.7 源码阅读——跳跃表skiplist
redis中并没有专门给跳跃表两个文件。在5.0.7的版本中,结构体的声明与定义、接口的声明在server.h中,接口的定义在t_zset.c中,所有开头为zsl的函数。一、数据结构单个节点:typedef struct zskiplistNode {
2024-11-07
redis 5.0.7 源码阅读——整数集合intset
redis中整数集合intset相关的文件为:intset.h与intset.cintset的所有操作与操作一个排序整形数组 int a[N]类似,只是根据类型做了内存上的优化。一、数据结构1 typedef struct intset {2 uint
2024-11-07
redis 5.0.7 源码阅读——压缩列表ziplist
redis中压缩列表ziplist相关的文件为:ziplist.h与ziplist.c压缩列表是redis专门开发出来为了节约内存的内存编码数据结构。源码中关于压缩列表介绍的注释也写得比较详细。一、数据结构压缩列表的整体结构如下(借用redis源码注释):1
2024-11-07
redis 5.0.7 源码阅读——动态字符串sds
redis中动态字符串sds相关的文件为:sds.h与sds.c一、数据结构redis中定义了自己的数据类型"sds",用于描述 char*,与一些数据结构 1 typedef char *sds; 2 3 /* Note: sdshdr5 is never
2024-11-07
docker安装redis 5.0.7并挂载外部配置和数据
环境CentOS Linux release 7.7.1908 (Core)拉取redis 5.0.7 镜像docker pull redis:5.0.7创建挂载目录mkdir -p /home/app/redis/confmkdir -p /home/ap
2024-11-07