数据结构
typedef struct redisDb {
dict *dict; // 保存所有 kv
dict *expires; // 设置了过期时间的 key 及其过期时间
}
// src/dict.h
// 哈希表
typedef struct dict {
dictht ht[2]; // ht=hash table,每个dict有俩,增量扩容时使用
} dict;
// 哈希表子结构
typedef struct dictht {
// 哈希表数组
// 可以看作是:一个哈希表数组,数组的每个项是entry链表的头结点(链地址法解决哈希冲突)
dictEntry **table;
} dictht;
// 24字节
typedef struct dictEntry {
void *key;
union {
void *val;
uint64_t u64;
int64_t s64;
} v;
struct dictEntry *next; // 指向下个哈希表节点,形成链表
} dictEntry;RedisObject

高级数据结构
命令的类型检查和多态
Last updated