前提:
- 根据高可用部署 规划 master 和 slave 的部署。
- 使用 bitnami-redis 部署 master 和 slave StatefulSets。
组 Master 成为集群
进入任意 master:
1
2
3
4
|
redis-cli -a <pass> --cluster create \
<master1-ip>:<master1-port> \
<master2-ip>:<master2-port> \
<master3-ip>:<master3-port>
|
检查集群状态
进入任意 master:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
redis-cli -a <pass> --cluster check <any-master-ip>:<any-master-port>
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node <any-master-ip>:<any-master-port>)
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.
|
添加 Slave
进入任意 master,一个个把 slave 加上,注意根据 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
先做 Resharding,redis-cli方式 或 Redis Command方式,把要删除的 master 上所有 slot 转移到其他 master 上:
1
2
3
4
5
6
|
redis-cli --user <user> --pass <pass> \
--cluster reshard <other-master-ip>:<other-master-port> \
--cluster-from <del-master-id> \
--cluster-to <other-master-id> \
--cluster-slots <number of slots on del master> \
--cluster-yes
|
进入任意 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>
|
评论