一步步看懂 Redis Hash 如何从 ht[0] 平滑迁移到 ht[1]
负载因子 = 元素数 / 桶数 > 1,多个 key 挤在同一个桶里形成链表,查找退化为 O(n),性能急剧下降
桶数翻倍,元素重新分散,链表长度缩短,查找回到 O(1),内存与性能重新平衡
Redis 的字典(dict)内部使用两个哈希表:ht[0] 和 ht[1]。
平时只有 ht[0] 在工作,ht[1] 处于未分配状态。
当负载因子(used / size)超过阈值时,Redis 会触发扩容,分配一个更大的 ht[1],然后渐进式地把 ht[0] 的元素搬过去。