Redis中Rehash会导致操作阻塞吗?

|

如下图,Redis的字典结构中包含了两个哈希表:

image-20211010122235503

默认是往ht[0]写数据的,随着数据主键增多,Redis就会触发执行rehash操作了,主要步骤如下:

  • 给ht[1]分配更大的空间;
  • 将ht[0]的数据拷贝到ht[1];
  • 释放ht[0]的空间。

如果直接拷贝数据,肯定是会花很长时间的,进一步会导致阻塞Redis。

为了避免这个问题,Redis中使用的是渐进式的rehash,进一步了解,可以阅读Part I中Hash字典小节内容。