Redis-Cli 集群管理

这里讲的是已有集群(已经有数据且在运行)的运维操作。

检查集群状态

进入任意 master:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
redis-cli -a <pass> --cluster check <node-ip>:<node-port>

<master1-ip>:<master1-port> (<master1-id>) -> 3355 keys | 5501 slots | 0 slaves.
<master2-ip>:<master2-port> (<master2-id>) -> 3287 keys | 5383 slots | 0 slaves.
<master3-ip>:<master3-port> (<master3-id>) -> 3359 keys | 5500 slots | 0 slaves.
[OK] 10001 keys in 3 masters.
0.61 keys per slot on average.
>>> Performing Cluster Check (using node 127.0.0.1:6379)
M: <master1-id> <master1-ip>:<master1-port>
   slots:[<start>-<end>] (<num> slots) master
M: <master2-id> <master2-ip>:<master2-port>
   slots:[<start>-<end>] (<num> slots) master
M: <master3-id> <master3-ip>:<master3-port>
   slots:[<start>-<end>] (<num> slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

添加 Master

进入任意 master,把新 master 加进来:

1
2
3
redis-cli -a <pass> --cluster add-node \
   <new-master-ip>:<new-master-port> \
   <any-master-ip>:<any-master-port> \

成功后要 Resharding,redis-cli方式Redis Command方式 ,把一些 slot 转移到新 master 上。

参考资料:

添加 Slave 节点

进入任意 master,把新 slave 加进来,同时将其配置为某个 master 的 slave,注意符合高可用部署架构

1
2
3
4
5
redis-cli -a <pass> --cluster add-node \
   <new-slave-ip>:<new-slave-port> \
   <any-master-ip>:<any-master-port> \
   --cluster-slave \
   --cluster-master-id <master-id>

参考资料:

删除 Master

前提:master 是空的,不负责任何 slot。

方法:Resharding,redis-cli方式Redis Command方式 ,把 master 上的所有 slot 转移到其他 master 上。

进入任意 master:

1
2
redis-cli -a <pass> --cluster del-node \
  <other-master-ip>:<other-master-port> <del-master-id>

被删掉的 master 的 slave 会自动转移到其他 master 下。

参考资料:

删除 Slave

进入任意 master 节点:

1
2
redis-cli -a <pass> --cluster del-node \
  <any-master-ip>:<any-master-port> <del-slave-id>

手动 Failover

Redis Command方式

K8S部署环境崩溃

Redis Command方式

升级节点

高可用架构

版权

评论