3.字典
用于保存键值对的抽象数据结构,即Java的map
C语言没有实现字典,因此Redis自己实现了一套
Redis的数据库就是使用字典来作为底层实现的,crud操作也是构建在对字典的操作之上的
例子:
哈希键的底层实现之一也是字典,当一个哈希键包含的键值对比较多,或键值对中的元素都是比较长的字符串时,就是使用字典
例子:website包含10086个键值对,键为数据库名,值为对应的主页网址
3.1 实现
字典底层实现为哈希表,一个哈希表里面可以有多个哈希节点,每个哈希节点保存了一个键值对
3.1.1 哈希表
dict.h/dictht:
table是一个数组,数组元素为指向dict.h/dictEntry结构的指针,每个dictEntry结构保存着一个键值对;
空哈希表示例: