redis笔记-数据结构篇
哈希表分而治之渐进式rehash步骤: 1)为ht分配空间,字典同时持有ht和ht。2)rehashidx设置为0,表示rehash开始。
3)rehash进行期间,每次对字典执行删除、查找或者更新操作时,会在两个哈希表上进行,程序除了执行指定的操作外,还会顺带将ht的键值对rehash到ht,每次对字典执行添加操作时,新添加的键值对一律保存到ht而不在对ht添加,当rehash后,将rehashidx值增一。
4)随着字典操作的不断进行,最终某个时间点,ht的所有键值对都会rehash到ht,将rehashidx设为-1,表示rehash操作完成。
5)释放ht,并将ht设置为ht,然后为ht分配一个空白哈希表。
页:
[1]