博客
关于我
Redis cluster集群扩容缩容原理
阅读量:732 次
发布时间:2019-03-21

本文共 540 字,大约阅读时间需要 1 分钟。

Redis集群在实际应用中,为了应对节点数量的变化,通常需要实施扩容或缩容策略。以下是两者的实现原理:

扩容原理:

Redis集群通过 تقس配方式实现灵活的节点管理。每个主节点(master)负责特定的槽(slot)和对应数据。当需要增加节点时,只需将部分槽和数据迁移至新节点。新节点初次加入后因槽占比不足,不可直接接收读写操作。迁移过程可采取两种方式:一是直接从其他节点迁移槽和数据,二是作为其他节点的从节点(slave)负责故障转移,随后接管相关槽。
迁移过程特点:

  • 过程同步,目标节点执行restore指令,原节点主线程阻塞直至槽迁移完成。
  • 若网络出现问题,迁移可能完成一部分,导致两个节点分别标记为"migrating"和"importing"状态,待恢复后续迁移。
  • 关键是避免大值key的存在,因为单次迁移会 block 两个节点,影响集群性能。因此,在集群环境下,业务逻辑应尽量避免处理大key。

缩容原理:

当需要下线节点时,处理方式与扩容持.lua类似:

  • 若下线的是从节点(slave),只需通知其他节点忘记该节点即可。
  • 若为主节点(master),需将其负责的槽迁移至其他主节点,完成后通知其他节点忘记该节点。
    该节点随后可下线并停止服务,进而可从集群中脱离。

转载地址:http://ukpgz.baihongyu.com/

你可能感兴趣的文章
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
ms sql server 2008 sp2更新异常
查看>>
MS UC 2013-0-Prepare Tool
查看>>
msbuild发布web应用程序
查看>>
MSCRM调用外部JS文件
查看>>
MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
查看>>
msf
查看>>
MSSQL数据库查询优化(一)
查看>>
MSSQL日期格式转换函数(使用CONVERT)
查看>>
MSTP多生成树协议(第二课)
查看>>
MSTP是什么?有哪些专有名词?
查看>>
Mstsc 远程桌面链接 And 网络映射
查看>>
Myeclipse常用快捷键
查看>>