MST

星途 面试题库

面试题:Redis字典rehash过程中,如何处理渐进式rehash期间的读写操作?

在Redis字典进行渐进式rehash时,描述一下读操作和写操作分别是如何处理的,以保证数据的一致性和正确性。
16.8万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

读操作处理

在渐进式rehash期间,读操作会同时检查新旧两个哈希表。如果在旧哈希表中找到对应的键值对,则直接返回。若未找到,则继续在新哈希表中查找。这样做能确保在rehash过程中,对已存在键的读取操作不受影响,保证数据读取的一致性和正确性。

写操作处理

  1. 新增键值对:新的键值对会直接被添加到新哈希表中,因为新哈希表才是未来使用的哈希表,这样能保证新数据的一致性和正确性。
  2. 更新键值对:如果要更新的键在旧哈希表中,会先将其从旧哈希表中删除,然后添加到新哈希表中。若键已在新哈希表中,则直接在新哈希表中更新,以此保证数据的一致性和正确性。
  3. 删除键值对:会同时在新旧两个哈希表中查找该键,若在旧哈希表中找到则删除,若在新哈希表中找到也删除,确保无论在哪个哈希表中都能正确删除,维护数据一致性。