Redis Cluster 故障转移

Redis Cluster 故障转移

公司最近移动机器机架,需要对一些机器关机操作.简单的看了一下RedisCluster的故障转移.

  1. 使用到的操作是添加节点.
    如果master和slave不是同事下架,我们可以直接把slave转换成master.
    如果master和slave在一个机架,都需要下架,需要创建一个新的实例,作为master的slave,同步完成之后,进行一下角色转换

    1
    2
    3
    4
    # ruby ./redis-trib.rb add-node new_host:new_port existing_host:existing_port
    ruby ./redis-trib.rb add-node 192.168.3.12:6390 192.168.3.50:6390
    # 登录3.12的新节点,在redis-cli 执行 cluster replicate 主节点id,可以通 cluster nodes获取
    192.168.3.12:6390> cluster replicate 1adb7efb73087d32be0479bbb7d7ad1dd5a9b304
  2. 互换角色
    在redis-cli的slave节点执行:CLUSTER FAILOVER [FORCE|TAKEOVER]

    1
    CLUSTER FAILOVER TAKEOVER

其他:
添加主节点

1
2
3
4
#添加节点
ruby ./redis-trib.rb add-node 192.168.3.15:6390 192.168.3.12:6390
#分配槽空间,根据向导分配对应的槽给心得节点
ruby ./redis-trib.rb reshard 192.168.3.15:6390