Redis集群(实例组建集群)

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,也就是指定删除

##如果要删除一个主节点,那么必须为空,也就是不能有槽。需要将数据重新分片到其他所有主节点
##从节点可以直接删掉


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值