MST
星途 面试题库

面试题:Redis在rehash过程中如何确保一般数据的读写一致性

请阐述Redis在进行rehash操作时,对于普通的读写操作,是通过哪些机制来保证数据一致性的?
30.2万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试
  1. 渐进式rehash机制
    • Redis采用渐进式rehash,避免在rehash时一次性处理大量数据,而是分多次进行。在rehash期间,同时保留新旧两个哈希表。
    • 每次执行读写操作时,除了正常的读写逻辑外,还会顺带将少量旧哈希表中的数据迁移到新哈希表。这样在不影响正常读写性能的前提下,逐步完成rehash。
  2. 读写操作处理
    • 读操作:当进行读操作时,先尝试从新哈希表中查找数据,如果没找到,再去旧哈希表中查找。这样可以保证即使数据正在迁移过程中,读操作也能获取到正确的数据。
    • 写操作:写操作会同时写入新旧两个哈希表,保证在rehash过程中数据的一致性。当旧哈希表中的数据全部迁移到新哈希表后,旧哈希表被释放。