六 、管理集群
2.1 集群选举测试 : 停止某个主库的redi服务 对应的从会自动升级主库
2.2 向集群中添加新节点主机  192.168.4.77
1  在主机57运行redis服务(要做对应的集群配置)
装包   初始配置
修改配置文件
vim /etc/redis/6379.conf
停止服务
启动服务
查看端口号
    11  yum -y install gcc
   12  init 6
   13  ls
   14  tar -zxf redis-4.0.8.tar.gz 
   15  cd redis-4.0.8/
   16  make
   17  make install
   18  ./utils/install_server.sh 
   19  /etc/init.d/redis_6379  status
   20  /etc/init.d/redis_6379  stop
   21  vim /etc/redis/6379.conf 
   22  /etc/init.d/redis_6379  start
   23  /etc/init.d/redis_6379  status
[root@redis77 redis-4.0.8]# netstat -utnalp  | grep redis-server
tcp        0      0 192.168.4.77:16077      0.0.0.0:*               LISTEN      4705/redis-server 1 
tcp        0      0 192.168.4.77:6077       0.0.0.0:*               LISTEN      4705/redis-server 1 
[root@redis77 redis-4.0.8]# 
redis-trib.rb   选项
add-node   添加主机  (主机的角色是master)
check   检查集群
reshard  重新分配hash  slot
2  把主机77添加到集群里
redis-trib.rb  add-node    192.168.4.77:6077  192.168.4.71:6071 
 [root@redis71 ~]# redis-trib.rb  add-node  192.168.4.77:6077  192.168.4.71:6071
>>> Adding node 192.168.4.77:6077 to cluster 192.168.4.71:6071
>>> Performing Cluster Check (using node 192.168.4.71:6071)
S: 3bfd47406253a25be9b13504ff0ecdd8524e9a9a 192.168.4.71:6071
   slots: (0 slots) slave
   replicates abb585e1803d756eb0b2d9a1b23790b6712ee7b2
M: cc0f13a4183eb06a771c5190319f7ac40626d04b 192.168.4.73:6073
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 5172f3a9cbd4fe8a488a8d45bdf60ae46ac9f900 192.168.4.76:6076
   slots: (0 slots) slave
   replicates 9717d02408e45ad996dcdbde6401bf1319727e22
S: 30aac94cf32bd5d2446b584be5e7c6b0c07f7da0 192.168.4.74:6074
   slots: (0 slots) slave
   replicates cc0f13a4183eb06a771c5190319f7ac40626d04b
M: 9717d02408e45ad996dcdbde6401bf1319727e22 192.168.4.72:6072
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: abb585e1803d756eb0b2d9a1b23790b6712ee7b2 192.168.4.75:6075
   slots:0-5460 (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.4.77:6077 to make it join the cluster.
[OK] New node added correctly.
[root@redis71 ~]# 
redis-trib.rb  check  192.168.4.77:6077
[root@redis71 ~]# redis-trib.rb  check  192.168.4.77:6077
>>> Performing Cluster Check (using node 192.168.4.77:6077)
M: 6cd754d126998090dcbe409315d7577bcd3b5605 192.168.4.77:6077
   slots: (0 slots) master
   0 additional replica(s)
S: 5172f3a9cbd4fe8a488a8d45bdf60ae46ac9f900 192.168.4.76:6076
   slots: (0 slots) slave
   replicates 9717d02408e45ad996dcdbde6401bf1319727e22
M: abb585e1803d756eb0b2d9a1b23790b6712ee7b2 192.168.4.75:6075
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 3bfd47406253a25be9b13504ff0ecdd8524e9a9a 192.168.4.71:6071
   slots: (0 slots) slave
   replicates abb585e1803d756eb0b2d9a1b23790b6712ee7b2
M: cc0f13a4183eb06a771c5190319f7ac40626d04b 192.168.4.73:6073
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: 9717d02408e45ad996dcdbde6401bf1319727e22 192.168.4.72:6072
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 30aac94cf32bd5d2446b584be5e7c6b0c07f7da0 192.168.4.74:6074
   slots: (0 slots) slave
   replicates cc0f13a4183eb06a771c5190319f7ac40626d04b
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@redis71 ~]# 
手动重新分配hash slot  
]# redis-trib.rb   reshard   192.168.4.77:6077
4096   拿出多少个 hash  slot  给主机 192.168.4.77
主机 192.168.4.77   id 值  
all  从当前所有的master里 获取hash  slot  个数
检查集群主机状态信息
[root@redis71 ~]# redis-trib.rb  check  192.168.4.77:6077
>>> Performing Cluster Check (using node 192.168.4.77:6077)
M: 6cd754d126998090dcbe409315d7577bcd3b5605 192.168.4.77:6077
   slots:0-1364,5461-6826,10923-12287 (4096 slots) master
   0 additional replica(s)
删除节点主机
1  删除master角色的节点主机
1.1 移除占用的hash槽(slot)
1.2 删除主机
]#redis-trib.rb  reshard  192.168.4.51:6051 
4096    移除hash槽的个数
主机id   目标主机id
主机id   源主机id
done   设置完毕
yes     提交
]# redis-trib.rb  del-node  192.168.4.51:6051   8eecda17577349125df9a6fcc37107c6c5f9bdc5
2 删除slave角色的节点主机
]# redis-trib.rb del-node  192.168.4.51:6051 651f7d99965316c1b8a27a2e9b034a5b14c2be55
添加slave角色主机
1  主机运行redis服务 并设置集群配置
2  添加slave角色主机
]# redis-trib.rb add-node --slave     要添加到集群中主机ip:端口     集群中已有的任意一个主机的ip:端口
[ERR] Node 192.168.4.54:6054 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
rm  -rf   /var/lib/redis/6379/
mkdir  /var/lib/redis/6379/
chmod -R a+w   /var/lib/redis/6379/
rm -rf    /var/run/redis_6379.pid
/etc/init.d/redis_6379 start
  211  /etc/init.d/redis_6379 status
  212  redis-cli  -h 192.168.4.54 -p 6054
[root@db54 redis]# redis-cli -c  -h 192.168.4.54 -p 6054
192.168.4.54:6054> CLUSTER info
cluster_state:fail
cluster_slots_assigned:0
192.168.4.54:6054> CLUSTER RESET
OK
192.168.4.54:6054>quit;
]# redis-trib.rb add-node --slave 192.168.4.54:6054 192.168.4.51:6051
192.168.4.54:6054> CLUSTER nodes
5278df7384edc9774b1a36b0b9d60a813a7424a9 192.168.4.52:6052@16052 master - 0 
1526121459000 2 connected 5461-9677 9679-10922
6cdb4c64c48c0ee2ca35bf139660f31ca92821dc 192.168.4.53:6053@16053 master - 0 1526121460637 
3 connected 10923-16383
f7d5c6065d155b5d3d02a4efba10ca2d3722f634 192.168.4.54:6054@16054 myself,slave 
0ec903c572270a90f3b140fba31aac15aaf5336b 0 1526121460000 0 connected
0ec903c572270a90f3b140fba31aac15aaf5336b 192.168.4.51:6051@16051 master - 0 1526121459635 
8 connected 0-5460 9678
a3af3096ee214c92a178eadf6e9299584899e62f 192.168.4.56:6056@16056 slave 
5278df7384edc9774b1a36b0b9d60a813a7424a9 0 1526121460000 2 connected
192.168.4.54:6054> 
                    
                
                
            
        
浙公网安备 33010602011771号