重点回顾
- 字典被广泛用于实现 Redis 的各种功能,
其中包括数据库和哈希键。
- Redis 中的字典使用哈希表作为底层实现,
每个字典带有两个哈希表,
一个用于平时使用,
另一个仅在进行 rehash 时使用。
- 当字典被用作数据库的底层实现,
或者哈希键的底层实现时,
Redis 使用 MurmurHash2 算法来计算键的哈希值。
- 哈希表使用链地址法来解决键冲突,
被分配到同一个索引上的多个键值对会连接成一个单向链表。
- 在对哈希表进行扩展或者收缩操作时,
程序需要将现有哈希表包含的所有键值对 rehash 到新哈希表里面,
并且这个 rehash 过程并不是一次性地完成的,
而是渐进式地完成的。