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