dict.h
在redis中,dict.h主要是hash的底层实现方式。
在dict.h中主要是一些数据结构的定义,以及一些宏函数的定义相关的内容。
哈希节点定义
源代码中的dictEntry就是哈希节点的相关定义
typedef struct dictEntry {
void *key; //存放key值
union {
//使用一个union存放value值
void *val;
uint64_t u64;
int64_t s64;
double d;
} v;
struct dictEntry *next; //hash冲突使用开链法,因此使用了一个next指针指向下一个节点
} dictEntry;
dictType
在dictType中,存放了一些操作函数
typedef struct dictType {
uint64_t (*hashFunction)(const void *key); //哈希函数
void *(*keyDup)(void *privdata, const void *key); //key复制
void *(*valDup)(