Redis数据结构之字典 (3)

rehash 的时候,ht[0] 和 ht[1] 同时使用,字典的增删查改等操作会先后在 ht[0] 和 ht[1] 上执行,比如查找时,先在 ht[0] 上查找,如果没有找到,则在 ht[1] 上查找。

rehash 的时候,ht[0] 只删改查,不会进行添加操作,添加会直接添加到 ht[1] 中,保证了 ht[0] 中的键值对数量只减不增,直到 rehash 完成之后,ht[0] 变成空表。

4、总结

字典广泛用于实现 Redis 的各种功能,包括数据库和哈希键;

字典底层使用哈希表实现,每个字典带有两个哈希表,一个平时使用,一个 rehash 的时候使用;

哈希表使用单项链表来解决键冲突;

哈希表扩展和收缩时,Redis 会将一个哈希表 rehash 到另一个哈希表上,这个操作是渐进式的,不是一次完成的;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxpgy.html