面试题答案
一键面试- 读操作:
- Redis在渐进式rehash过程中,读操作会先尝试从新哈希表中读取数据。如果在新哈希表中没有找到对应的键值对,再去旧哈希表中查找。这样就保证了读操作能够获取到最新的数据,因为新写入的数据会优先存放在新哈希表中。
- 写操作:
- 对于写操作,无论是插入新数据还是更新现有数据,Redis都会将数据写入到新哈希表中。如果在写操作时发现部分数据还在旧哈希表中,这并不影响新数据的写入。新数据的写入操作只针对新哈希表,从而确保了写操作的正确性,不会因为旧表中有部分数据而出现混乱。
- 在渐进式rehash完成后,旧哈希表会被释放,此时整个数据存储就完全基于新哈希表,读写操作也都在新哈希表上进行。