Redis中有一种数据结构叫字典,又称Map,是一种用于保存键值对的抽象数据结构。表现为一个key对应一个value,同时每一个key都是独一无二的。在Redis中对数据库进行的增删改查操作就是建立在字典上面。同时哈希键也是基于字典实现的。
实现方式:
使用哈希表作为底层实现。一个哈希表中有多个哈希表节点,而每一个哈希表节点就保存了字典中的一个键值对。
结构包含:
1. 类型特定函数
2. 私有数据
3. 哈希表
4. rehash索引
从这张表中可以看出字典是由多个哈希表组成,ht[0],ht[1]就是两个哈希节点。
其他操作:
1. 字典中的某一个哈希表出现哈希冲突时解决冲突的方式以及扩容时进行的rehash方式同hashmap一致。当哈希表的负载因子小于0.1时候自动开始收缩工作。
2. 每个字典带有两张哈希表(就是上文中提到的ht[0],ht[1]),一个平时使用,另一个仅在进行rehash(渐进式rehash)时使用。











网友评论