Redis集群(实例组建集群)
1.下载安装redis。(selinux关闭)
####下载并解压
[root@yulong-redis ~]# wget -c http://download.redis.io/releases/redis-5.0.7.tar.gz
[root@yulong-redis ~]# tar zxvf redis-5.0.7.tar.gz -C /usr/src/
[root@yulong-redis src]# cd /usr/src/redis-5.0.7/
####编译安装
[root@yulong-redis redis-5.0.7]# make
[root@yulong-redis redis-5.0.7]# make PREFIX=/usr/local/redis install
####创建连接文件
[root@yulong-redis redis-5.0.7]# ln -s /usr/local/redis/bin/* /usr/local/bin
####创建启动用户组
[root@yulong-redis redis-5.0.7]# groupadd -g 994 redis
[root@yulong-redis redis-5.0.7]# useradd -g 994 -s /sbin/nologin redis
####/etc目录下创建配置文件
[root@yulong-redis redis-5.0.7]# mkdir /etc/redis
[root@yulong-redis redis-5.0.7]# chown redis:redis /etc/redis/
[root@yulong-redis redis-5.0.7]# cp redis.conf /etc/redis/
[root@yulong-redis redis-5.0.7]# vim /etc/redis/redis.conf
更改三行内容如下:
bind 127.0.0.1 192.168.136.127 #绑定地址
daemonize yes #后台守护进程启动
dir /etc/redis #存储目录
####生成systemd启动脚本
[root@yulong-redis redis-5.0.7]# vim /usr/lib/systemd/system/redis.service
键入:
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf --supervised systemd
ExecStop=/usr/bin/pkill redis-server
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0775
[Install]
WantBy=multi-user.target
####启动服务
[root@yulong-redis redis-5.0.7]# systemctl daemon-reload
[root@yulong-redis redis-5.0.7]# systemctl restart redis.service
####消除警告信息
[root@yulong-redis redis-5.0.7]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@yulong-redis redis-5.0.7]# vim /etc/sysctl.conf
追加:
vm.overcommit_memory = 1
net.core.somaxconn=1024
[root@yulong-redis redis-5.0.7]# sysctl -p
####连接本机redis数据库,检查是否启动
[root@yulong-redis bin]# redis-cli
127.0.0.1:6379> ping
PONG
####调整pid文件和指定日志文件(同时也让那些符号消失)
[root@yulong-redis ~]# vim /etc/redis/redis.conf
更改:
logfile "/var/log/redis_6379.log"
[root@yulong-redis ~]# chmod 777 /var/log/ ##由于指定了redis用户,所以,他必须得到目录的操控权限
[root@yulong-redis ~]# systemctl status redis
● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; static; vendor preset: disabled)
Active: active (running) since 四 2020-04-09 09:46:04 CST; 3min 3s ago
Process: 19027 ExecStop=/usr/bin/pkill redis-server (code=exited, status=0/SUCCESS)
Main PID: 19030 (redis-server)
CGroup: /system.slice/redis.service
└─19030 /usr/local/redis/bin/redis-server 127.0.0.1:6379
4月 09 09:46:04 yulong-redis systemd[1]: Starting Redis persistent key-value database...
4月 09 09:46:04 yulong-redis systemd[1]: Started Redis persistent key-value database.
2.启动六个实例。
####创建实例配置文件目录
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7000 -p
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7001 -p
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7002 -p
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7003 -p
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7004 -p
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7005 -p
####复制配置
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7000
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7001
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7002
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7003
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7004
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7005
####修改各个实例的配置文件
[root@yulong-redis ~]# vim /etc/redis-cluster/7000/redis.conf
更改
bind 127.0.0.1 192.168.136.127 #因为是通过实例,所以,ip地址一样
protected-mode yes #默认开启,可选择关闭保护
port 7000 #不同实例,端口号不通
daemonize yes #默认开启
pidfile /var/run/redis_7000.pid #不同的实例,名字要不同
logfile "/var/log/redis-cluster/7000.log" #不同的实例,名字不同
dir /etc/redis-cluster/7000/ #不同的实例,目录名不同
appendonly yes
cluster-enabled yes #集群开启
cluster-config-file nodes-7000.conf
cluster-node-timeout 15000
————注意,其余的实例要按照上面的样式进行修改即可
####创建存放日志的目录
[root@yulong-redis ~]# mkdir /var/log/redis-cluster/
####启动6个redis实例
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7000/redis.conf
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7001/redis.conf
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7002/redis.conf
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7003/redis.conf
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7004/redis.conf
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7005/redis.conf
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7006/redis.conf
####查看redis实例的开启状态
[root@yulong-redis ~]# netstat -antp | grep redis-server
tcp 0 0 192.168.136.127:17000 0.0.0.0:* LISTEN 19292/redis-server
tcp 0 0 127.0.0.1:17000 0.0.0.0:* LISTEN 19292/redis-server
tcp 0 0 192.168.136.127:17001 0.0.0.0:* LISTEN 19297/redis-server
tcp 0 0 127.0.0.1:17001 0.0.0.0:* LISTEN 19297/redis-server
tcp 0 0 192.168.136.127:17002 0.0.0.0:* LISTEN 19302/redis-server
tcp 0 0 127.0.0.1:17002 0.0.0.0:* LISTEN 19302/redis-server
tcp 0 0 192.168.136.127:17003 0.0.0.0:* LISTEN 19307/redis-server
tcp 0 0 127.0.0.1:17003 0.0.0.0:* LISTEN 19307/redis-server
tcp 0 0 192.168.136.127:6379 0.0.0.0:* LISTEN 19030/redis-server
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 19030/redis-server
tcp 0 0 192.168.136.127:17004 0.0.0.0:* LISTEN 19312/redis-server
tcp 0 0 127.0.0.1:17004 0.0.0.0:* LISTEN 19312/redis-server
tcp 0 0 192.168.136.127:17005 0.0.0.0:* LISTEN 19317/redis-server
tcp 0 0 127.0.0.1:17005 0.0.0.0:* LISTEN 19317/redis-server
tcp 0 0 192.168.136.127:7000 0.0.0.0:* LISTEN 19292/redis-server
tcp 0 0 127.0.0.1:7000 0.0.0.0:* LISTEN 19292/redis-server
tcp 0 0 192.168.136.127:7001 0.0.0.0:* LISTEN 19297/redis-server
tcp 0 0 127.0.0.1:7001 0.0.0.0:* LISTEN 19297/redis-server
tcp 0 0 192.168.136.127:7002 0.0.0.0:* LISTEN 19302/redis-server
tcp 0 0 127.0.0.1:7002 0.0.0.0:* LISTEN 19302/redis-server
tcp 0 0 192.168.136.127:7003 0.0.0.0:* LISTEN 19307/redis-server
tcp 0 0 127.0.0.1:7003 0.0.0.0:* LISTEN 19307/redis-server
tcp 0 0 192.168.136.127:7004 0.0.0.0:* LISTEN 19312/redis-server
tcp 0 0 127.0.0.1:7004 0.0.0.0:* LISTEN 19312/redis-server
tcp 0 0 192.168.136.127:7005 0.0.0.0:* LISTEN 19317/redis-server
tcp 0 0 127.0.0.1:7005 0.0.0.0:* LISTEN 19317/redis-server
####防火墙放行端口
[root@yulong-redis ~]# firewall-cmd --add-port=7000-7005/tcp --permanent
success
[root@yulong-redis ~]# firewall-cmd --add-port=17000-17005/tcp --permanent
success
[root@yulong-redis ~]# firewall-cmd --reload
success
####查看日志中,每个节点为其分配一个新的id
[root@yulong-redis redis-cluster]# cat /var/log/redis-cluster/7002.log | grep "I'm"
19302:M 09 Apr 2020 10:46:40.107 * No cluster configuration found, I'm 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc
3.创建集群
####我是5.0版本 使用redis-cli,如果4.0或一下,徐使用redis-trib.rb
[root@yulong-redis ~]# redis-cli --cluster create 192.168.136.127:7000 192.168.136.127:7001 192.168.136.127:7002 192.168.136.127:7003 192.168.136.127:7004 192.168.136.127:7005 --cluster-replicas 1 #luster-relicas指定分配一个复制的,一个主一个复制,这个命令中用了6个实例,即三从分别复制三主。
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.136.127:7004 to 192.168.136.127:7000
#7004是7000的从
Adding replica 192.168.136.127:7005 to 192.168.136.127:7001
Adding replica 192.168.136.127:7003 to 192.168.136.127:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: d12e5eddb469754067e9f32eed78ee96ea33304a 192.168.136.127:7000
slots:[0-5460] (5461 slots) master
M: eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 192.168.136.127:7001
slots:[5461-10922] (5462 slots) master
M: 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 192.168.136.127:7002
slots:[10923-16383] (5461 slots) master
S: 5dda3b37baa10b47df3805d483caf593bc37996d 192.168.136.127:7003
replicates 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc
S: db6e77d3c87d320a9f993004307044234c247bc4 192.168.136.127:7004
replicates d12e5eddb469754067e9f32eed78ee96ea33304a
S: fac2dc5c5ed230be51316e5c36c9df45e45a00bc 192.168.136.127:7005
replicates eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
...
>>> Performing Cluster Check (using node 192.168.136.127:7000)
M: d12e5eddb469754067e9f32eed78ee96ea33304a 192.168.136.127:7000
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005
slots: (0 slots) slave
replicates eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f
M: eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004
slots: (0 slots) slave
replicates d12e5eddb469754067e9f32eed78ee96ea33304a
S: 5dda3b37baa10b47df3805d483caf593bc37996d 127.0.0.1:7003
slots: (0 slots) slave
replicates 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
####查看集群成员
[root@yulong-redis ~]# redis-cli -p 7000 -h 192.168.136.127 cluster nodes
fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005@17005 slave eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 0 1586416275000 6 connected
eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001@17001 master - 0 1586416274000 2 connected 5461-10922
52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002@17002 master - 0 1586416277292 3 connected 10923-16383
db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004@17004 slave d12e5eddb469754067e9f32eed78ee96ea33304a 0 1586416276283 5 connected
5dda3b37baa10b47df3805d483caf593bc37996d 127.0.0.1:7003@17003 slave 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 0 1586416275277 4 connected
d12e5eddb469754067e9f32eed78ee96ea33304a 192.168.136.127:7000@17000 myself,master - 0 1586416274000 1 connected 0-5460
4.测试集群故障转移
####关闭7002实例
[root@yulong-redis ~]# redis-cli -p 7002 debug segfault
####查看集群节点,发现7003变成了主节点
[root@yulong-redis ~]# redis-cli -p 7000 -h 192.168.136.127 cluster nodes
fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005@17005 slave eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 0 1586419311000 6 connected
eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001@17001 master - 0 1586419312747 2 connected 5461-10922
52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002@17002 master,fail - 1586419217131 1586419216024 3 disconnected
#我们可以看到,上面这段话,fail,代表7002已经挂掉了。
db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004@17004 slave d12e5eddb469754067e9f32eed78ee96ea33304a 0 1586419311000 5 connected
5dda3b37baa10b47df3805d483caf593bc37996d 127.0.0.1:7003@17003 master - 0 1586419311740 7 connected 10923-16383
d12e5eddb469754067e9f32eed78ee96ea33304a
#7003已经晋升成为了新的master
192.168.136.127:7000@17000 myself,master - 0 1586419308000 1 connected 0-5460
####重启启动7002,其变成了7003实例的从节点
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7002/redis.conf
[root@yulong-redis ~]# redis-cli -p 7000 cluster nodes
fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005@17005 slave eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 0 1586419542000 6 connected
eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001@17001 master - 0 1586419545498 2 connected 5461-10922
52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002@17002 slave 5dda3b37baa10b47df3805d483caf593bc37996d 0 1586419543484 7 connected #可以看到,他已经变成了slave
db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004@17004 slave d12e5eddb469754067e9f32eed78ee96ea33304a 0 1586419543000 5 connected
5dda3b37baa10b47df3805d483caf593bc37996d 127.0.0.1:7003@17003 master - 0 1586419544493 7 connected 10923-16383
d12e5eddb469754067e9f32eed78ee96ea33304a 192.168.136.127:7000@17000 myself,master - 0 1586419543000 1 connected 0-5460
5.添加新节点
####在另外创建一个新的实例7006
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7006
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7006/
[root@yulong-redis ~]# vim /etc/redis-cluster/7006/redis.conf
#配置文件的更改处和之前一样
####启动7006实例
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7006/redis.conf
####将其加入到集群中(新节点不工作,没有槽位)
[root@yulong-redis ~]#
[root@yulong-redis ~]# redis-cli --cluster add-node 192.168.136.127:7006 192.168.136.127:7000
>>> Adding node 192.168.136.127:7006 to cluster 192.168.136.127:7000
>>> Performing Cluster Check (using node 192.168.136.127:7000)
M: d12e5eddb469754067e9f32eed78ee96ea33304a 192.168.136.127:7000
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005
slots: (0 slots) slave
replicates eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f
M: eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002
slots: (0 slots) slave
replicates 5dda3b37baa10b47df3805d483caf593bc37996d
S: db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004
slots: (0 slots) slave
replicates d12e5eddb469754067e9f32eed78ee96ea33304a
M: 5dda3b37baa10b47df3805d483caf593bc37996d 127.0.0.1:7003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.136.127:7006 to make it join the cluster.
[OK] New node added correctly.
####检查一下集群节点
[root@yulong-redis ~]# redis-cli --cluster check 192.168.136.127:7000
192.168.136.127:7000 (d12e5edd...) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:7001 (eefc6ca1...) -> 0 keys | 5462 slots | 1 slaves.
127.0.0.1:7006 (8282febb...) -> 0 keys | 0 slots | 0 slaves.
127.0.0.1:7003 (5dda3b37...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.136.127:7000)
M: d12e5eddb469754067e9f32eed78ee96ea33304a 192.168.136.127:7000
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005
slots: (0 slots) slave
replicates eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f
M: eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002
slots: (0 slots) slave
replicates 5dda3b37baa10b47df3805d483caf593bc37996d
S: db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004
slots: (0 slots) slave
replicates d12e5eddb469754067e9f32eed78ee96ea33304a
M: 8282febb3c80996a289f6b56b58c26a662881cda 127.0.0.1:7006
slots: (0 slots) master
M: 5dda3b37baa10b47df3805d483caf593bc37996d 127.0.0.1:7003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
6.对集群进行重新分片(让7006工作起来)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fWmOTcf1-1595134160802)(https://pic.images.ac.cn/image/5e8ede40109d7)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2p7GEU2e-1595134160803)(https://pic.images.ac.cn/image/5e8ede68abe4d)]
####重新分片后,对集群进行检查
[root@yulong-redis ~]# redis-cli --cluster check 192.168.136.127:7003 #这里可以是任意一个实例,因为他们是一个整体集群
结果如下:
192.168.136.127:7003 (5dda3b37...) -> 0 keys | 4096 slots | 1 slaves.
127.0.0.1:7006 (8282febb...) -> 0 keys | 4096 slots | 0 slaves.
127.0.0.1:7001 (eefc6ca1...) -> 0 keys | 4096 slots | 1 slaves.
127.0.0.1:7000 (d12e5edd...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 0 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.136.127:7003)
M: 5dda3b37baa10b47df3805d483caf593bc37996d 192.168.136.127:7003
slots:[12288-16383] (4096 slots) master
1 additional replica(s)
S: db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004
slots: (0 slots) slave
replicates d12e5eddb469754067e9f32eed78ee96ea33304a
S: 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002
slots: (0 slots) slave
replicates 5dda3b37baa10b47df3805d483caf593bc37996d
M: 8282febb3c80996a289f6b56b58c26a662881cda 127.0.0.1:7006
slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
S: fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005
slots: (0 slots) slave
replicates eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f
M: eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001
slots:[6827-10922] (4096 slots) master
1 additional replica(s)
M: d12e5eddb469754067e9f32eed78ee96ea33304a 127.0.0.1:7000
slots:[1365-5460] (4096 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
7.添加一个从节点
####在另外创建一个新的实例7007
[root@yulong-redis ~]# mkdir /etc/redis-cluster/7007
[root@yulong-redis ~]# cp /etc/redis/redis.conf /etc/redis-cluster/7007/
[root@yulong-redis ~]# vim /etc/redis-cluster/7007/redis.conf
#配置文件的更改处和之前一样
[root@yulong-redis ~]# redis-server /etc/redis-cluster/7007/redis.conf
####添加从节点进去(默认是给没有从库或者从库少的主库去当从节点去了,因为我们没有指定主库)
[root@yulong-redis ~]# redis-cli --cluster add-node 192.168.136.127:7007 192.168.136.127:7000 --cluster-slave
>>> Adding node 192.168.136.127:7007 to cluster 192.168.136.127:7000
>>> Performing Cluster Check (using node 192.168.136.127:7000)
M: d12e5eddb469754067e9f32eed78ee96ea33304a 192.168.136.127:7000
slots:[1365-5460] (4096 slots) master
1 additional replica(s)
S: fac2dc5c5ed230be51316e5c36c9df45e45a00bc 127.0.0.1:7005
slots: (0 slots) slave
replicates eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f
M: eefc6ca158d0b1aa4ce11c2e1b1df06dc32ed94f 127.0.0.1:7001
slots:[6827-10922] (4096 slots) master
1 additional replica(s)
S: 52974cb3d9b0fc275c03e83c0f54efb2c9df60dc 127.0.0.1:7002
slots: (0 slots) slave
replicates 5dda3b37baa10b47df3805d483caf593bc37996d
S: db6e77d3c87d320a9f993004307044234c247bc4 127.0.0.1:7004
slots: (0 slots) slave
replicates d12e5eddb469754067e9f32eed78ee96ea33304a
M: 8282febb3c80996a289f6b56b58c26a662881cda 127.0.0.1:7006
slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
M: 5dda3b37baa10b47df3805d483caf593bc37996d 127.0.0.1:7003
slots:[12288-16383] (4096 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
Automatically selected master 127.0.0.1:7006
>>> Send CLUSTER MEET to node 192.168.136.127:7007 to make it join the cluster.
Waiting for the cluster to join
>>> Configure node as replica of 127.0.0.1:7006.
[OK] New node added correctly.
8.删除节点
[root@yulong-redis ~]# redis-cli --cluster del-node 127.0.0.1:7007 ec604fcb72bed57448067a5a531397ebc3c1d8a0
>>> Removing node ec604fcb72bed57448067a5a531397ebc3c1d8a0 from cluster 127.0.0.1:7007
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
##第一个参数是集群中的一个随机节点,第二个参数要删除的节点id,也就是指定删除
##如果要删除一个主节点,那么必须为空,也就是不能有槽。需要将数据重新分片到其他所有主节点
##从节点可以直接删掉
[OK] New node added correctly.
#### 8.删除节点
[root@yulong-redis ~]# redis-cli --cluster del-node 127.0.0.1:7007 ec604fcb72bed57448067a5a531397ebc3c1d8a0
Removing node ec604fcb72bed57448067a5a531397ebc3c1d8a0 from cluster 127.0.0.1:7007
Sending CLUSTER FORGET messages to the cluster…
SHUTDOWN the node.
##第一个参数是集群中的一个随机节点,第二个参数要删除的节点id,也就是指定删除
##如果要删除一个主节点,那么必须为空,也就是不能有槽。需要将数据重新分片到其他所有主节点
##从节点可以直接删掉