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