这里讲的是已有集群(已经有数据且在运行)的运维操作。
检查集群状态
进入任意 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方式
升级节点
见 高可用架构。
评论