当前位置: 首页 > news >正文

Redis 的 Rehash 操作详解

Redis 的Rehash是其哈希表(dict)实现中的核心机制,用于在动态扩容或缩容时保持高性能的查找效率。

一、Rehash 的定义与目的

特性

说明

定义

将哈希表中所有键值对重新哈希到一张新的、大小合适的哈希表中,并逐步迁移的过程。

目的

1.扩容:当负载因子(used / size)超过阈值(通常为 1)时,自动触发扩容,以降低哈希冲突,提升性能。 2.缩容:当负载因子过低时,可触发缩容以节省内存。

触发条件

1.自动触发:执行插入操作时,若负载因子超过dictHashMaxLoadFactor(默认 1),则自动开始 rehash。 2.手动触发:通过dictResize命令可手动调整哈希表大小。

二、Rehash 的工作机制

Redis 的 rehash 采用**渐进式(渐进式 rehash)**策略,这是其高性能的关键。

1. 渐进式 Rehash 流程

步骤

说明

1. 创建新表

当触发 rehash 时,Redis 会创建一张新的哈希表(ht[1]),其大小通常是原表(ht[0])的 2 倍(扩容时)。

2. 双表并存

在 rehash 完成前,新旧两张哈希表同时存在,所有操作(查找、插入、删除)都会在这两张表上进行。

3. 渐进迁移

每次执行命令时,Redis 会迁移固定数量的键值对(例如 5 个)从ht[0]ht[1]。这避免了单次 rehash 造成的长时间阻塞。

4. 完成迁移

当所有键值对迁移完毕,旧表ht[0]被释放,ht[1]成为新的ht[0],rehash 状态结束。

2. 查找与操作逻辑

操作

在 rehash 期间的处理方式

查找

先在ht[0]中查找,若未找到,再在ht[1]中查找。

插入

键值对只插入到ht[1]中。

删除

ht[0]ht[1]中同时删除。

这种设计保证了 rehash 过程中不会阻塞主线程,所有操作都能在 O(1) 平均时间复杂度内完成。

三、Rehash 与指纹信息的关系

Redis 的字典指纹在 rehash 过程中会发生变化。

场景

指纹变化

原因

插入/删除键值对

变化

字典的used计数改变。

触发 rehash

变化

哈希表大小、指针地址等状态改变。

rehash 过程中

持续变化

随着键值对逐步迁移,字典状态动态变化。

这意味着,在 rehash 期间,依赖字典指纹的安全迭代器dictGetSafeIterator)需要特别注意,因为迭代过程中指纹可能已改变,可能导致迭代结果不一致或需要重新开始。
http://www.jsqmd.com/news/640678/

相关文章:

  • 西咸新区沣东新城优卓越制冷维修服务部:西咸新区空调回收 空调安装公司电话 - LYL仔仔
  • linux学习进展 文件操作
  • 思科模拟器实战:构建高可用校园网络
  • 终极指南:如何免费解锁Cursor Pro的完整AI编程功能
  • 2026年4月黄家湖学驾校/驾照/学车/考驾照机构市场观察:如何精准选择靠谱驾校服务商 - 2026年企业推荐榜
  • 深入解析devm_regulator_get:Linux电源管理的自动化资源获取机制
  • 西咸新区沣东新城优卓越制冷维修服务部:西咸新区空调回收 空调安装公司 - LYL仔仔
  • Unity——深入解析AB包(AssetBundle)的内存管理与优化策略
  • 珠宝行业AI生成式引擎优化(GEO)全攻略
  • Ubuntu桌面应用开机自启动终极指南:从.desktop配置到环境变量设置
  • 南北阁 Nanbeige 4.1-3B 应用场景:嵌入电子政务内网提供政策解读服务
  • 2026羽绒服面料源头工厂推荐,优秀的供应商到底能为你的品牌省下多少成本? - 速递信息
  • 从汽车到工厂:深入浅出解析PTP在TSN和AUTOSAR中的实现差异
  • 使用Proteus进行系统级仿真:集成SDMatte算法的图像处理SoC设计初探
  • 广东防排烟防火复合风管怎么选?核心参数、厂家案例及服务能力全解 - 深度智识库
  • HumanX 大会热议 AI 裁员:论文推演极端困境,现实正朝此方向缓慢移动
  • 面向AI电吉他效果器的功率MOSFET选型分析——以高保真、低噪声与智能电源管理为例
  • 3步实现Windows启动画面个性化:告别单调开机界面
  • C++ 类模板深度解析:从泛型到具体化
  • 4月14日成都地区华岐产镀锌管(Q355B;内径DN15-200mm)现货报价 - 四川盛世钢联营销中心
  • 雷达信号处理 python实现(二)雷达信号的组成与幅度模型
  • 拒绝低端内卷,博润风管以“高新技术企业”标准重塑风管制造品质 - 深度智识库
  • iOS越狱实战:TrollInstallerX深度解析与安装指南
  • 二维码扫码工具
  • 告别LoFTR的‘慢’烦恼:手把手教你用Efficient LoFTR加速图像匹配(附RepVGG部署技巧)
  • CentOS8网络管理疑难:为何配置中心无法识别网卡?
  • 雅思急出分必看!2026年3大雅思机构实测,多次元教育凭强督学+保分公证断层领先 - 速递信息
  • 高斯过程回归实战:从理论推导到Python代码实现与可视化分析
  • 2026Q2深圳财税机构实力榜:5家值得关注的服务商深度解析 - 小征每日分享
  • USB转串口通信电路设计实战解析