Redis 常见问题 -- 哈希冲突
哈希冲突:
redis解决哈希冲突的方式是 链式哈希,依次用指针链接。当数据量大到一定程度,链表过长,则容易出现慢操作,这时 redis会执行 rehash(渐进式 rehash),操作步骤如下:
给哈希表2 分配更大的空间,例如是表 1的两倍;
把哈希表1中的数据重新映射并拷贝到哈希表 2中;
释放哈希表 1的控件。
为了避免大量的数据拷贝造成线程赌塞, rehash 会在第二步中,每处理一个请求时,从哈希表 1中的第一个索引位置开始,顺带将这个索引位置上的所有拷贝到哈希表 2中;每次处理一个请求就拷贝一个哈希桶。
评论