Redis 的字典是怎样扩容的?
先自己想一想,再看参考要点
参考要点
- 字典是拉链法的哈希表,桶数为 2 的幂
- 键数达到桶数时扩容(有子进程执行 BGSAVE 或 AOF 重写时要达到 4 倍),新表大小为不小于键数加 1 的 2 的幂
- 采用渐进式 rehash:同时保留新旧两张表,之后每次增删改查顺便迁移一个桶,serverCron 也定期迁移,期间新键只写入新表,查找和删除时两张表都可能要查,迁移完后新表替换旧表
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。