Redis数据结构
Redis字典
Redis 字典底层使用了一个哈希表来保存所有键值对。哈希表由dict.h/dictht结构定义如下:
typedef struct dictht {
dictEntry **table;
unsigned long size; //哈希表大小
.....
}
table是一个数组,数组的每个元素称为一个哈希桶,哈希桶中每个元素指向dict.h/dictEntry结构的指针。哈希桶中的 dicEntry元素中保存了key和value指针,分别指向了实际的键和值。dict.h/dictEntry结构定义如下:
typedef struct dictEntry {
void *key;
void *value; //此处简写指向value值指针
struct dictEntry *next; //指向下一个元素
}
dictEntry是一个链表,当出现哈希冲突时,形成链表。