博客
关于我
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/

你可能感兴趣的文章
Oracle Statspack分析报告详解(一)
查看>>
oracle 使用leading, use_nl, rownum调优
查看>>
Oracle 写存储过程的一个模板还有一些基本的知识点
查看>>
Oracle 创建 DBLink 的方法
查看>>
oracle 创建字段自增长——两种实现方式汇总
查看>>
Oracle 升级10.2.0.5.4 OPatch 报错Patch 12419392 Optional component(s) missing 解决方法
查看>>
oracle 可传输的表空间:rman
查看>>
Oracle 启动监听命令
查看>>
oracle 学习
查看>>
ORACLE 客户端工具连接oracle 12504
查看>>
oracle 行转列
查看>>
Oracle 表
查看>>
Oracle 递归
查看>>
oracle 逻辑优化,提升高度,综合SQL上下文进行逻辑优化
查看>>
oracle 闪回关闭,关闭闪回即disable flashback的操作步骤
查看>>
oracle--用户,权限,角色的管理
查看>>
oracle00205报错,Oracle控制文件损坏报错场景
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle10g下载地址--多平台下的32位和64位
查看>>
Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
查看>>