一、简单动态字符串
SDS定义
struct sdsstr{
//已保存的字符串长度
int len;
//数组还剩余的空间
int free;
//保存字符串的字节数组
char buf[];
}
获取字符串长度O(1)、杜绝缓冲区溢出、内存重新分配次数、存储二进制
二、链表
redis重构了自己的链表实现
typedef struct listNode{
//前置节点
struct listNode *prev;
//后置节点
struct listNode *next;
//节点的值
void *value;
}listNode;
三、字典
redis的字典使用哈希表作为底层实现,一个哈希表可以有多个哈希表节点,
每个哈希表节点就保存了字典中的一个键值对。
redis采用渐进式rehash操作进行扩展
四、跳跃表
标签:listNode,struct,redis,笔记,学习,哈希,字符串,节点 From: https://www.cnblogs.com/gaoshikenan/p/17191193.html