【Redis 字典的实现】
注意 dict
类型使用了两个指针,分别指向两个哈希表。
其中, 0 号哈希表(ht[0]
)是字典主要使用的哈希表, 而 1 号哈希表(ht[1]
)则只有在程序对 0 号哈希表进行 rehash 时才使用。
table
属性是个数组, 数组的每个元素都是个指向 dictEntry
结构的指针。
每个 dictEntry
都保存着一个键值对, 以及一个指向另一个 dictEntry
结构的指针:
整体结构如下:
参考:http://redisbook.readthedocs.org/en/latest/internal-datastruct/dict.html