redis集群搭建(手动指定master和slave)

接上一篇:https://blog.csdn.net/u010533511/article/details/89388547

1、创建3个master

/usr/local/redis_cluster/redis-trib.rb create --replicas 0 192.168.135.23:7001 192.168.135.229:7007 192.168.135.196:7004

--replicas 1表示为集群的master节点创建1个slave。那么6个实例里,有三个master,有三个是slave。

--replicas 0不为集群的master节点创建slave。

2、分别指定3个slave到指定的主下面

/usr/local/redis_cluster/redis-trib.rb add-node --slave --master-id d1983a08bade495716392200e2b3efbd09736631 192.168.135.196:7005 192.168.135.23:7001

/usr/local/redis_cluster/redis-trib.rb add-node --slave --master-id 9cd7049834c0f3183b474b0bd3e516b5359f6c67 192.168.135.229:7008 192.168.135.196:7004

/usr/local/redis_cluster/redis-trib.rb add-node --slave --master-id 5d6bc6740e5bc88643377746d140fdf63f812d88 192.168.135.23:7002 192.168.135.229:7007

3、查看集群状态:

[root@localhost /]# cd /usr/local/redis_cluster
[root@localhost redis_cluster]# ./redis-trib.rb check 192.168.135.23:7001
>>> Performing Cluster Check (using node 192.168.135.23:7001)
M: d1983a08bade495716392200e2b3efbd09736631 192.168.135.23:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 883862d8a29665094995ca75f41c39186979bbc0 192.168.135.229:7008
   slots: (0 slots) slave
   replicates 9cd7049834c0f3183b474b0bd3e516b5359f6c67
S: d5c04adcad1034d2b1bcb327a86a9519efe1ca04 192.168.135.196:7005
   slots: (0 slots) slave
   replicates d1983a08bade495716392200e2b3efbd09736631
M: 9cd7049834c0f3183b474b0bd3e516b5359f6c67 192.168.135.196:7004
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 2f40bcf6bdde917a39ed67c47e943161b378d952 192.168.135.23:7002
   slots: (0 slots) slave
   replicates 5d6bc6740e5bc88643377746d140fdf63f812d88
M: 5d6bc6740e5bc88643377746d140fdf63f812d88 192.168.135.229:7007
   slots:5461-10922 (5462 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.

 4、测试一下get 和 set数据

 redis-cli -c -p 7001

 进入命令窗口,直接 set  test success

 直接会根据hash匹配切换到相应的slot的节点上。

 redis集群有16383个slot组成,通过分片分布到多个节点上,读写都发生在master节点。

5、关闭某个服务器的所有redis服务查看集群是否正常

比如关掉229的redis服务

[root@localhost /]# ps -ef|grep cluster
root     21193  6432  0 23:19 pts/1    00:00:00 grep --color=auto cluster
root     24263     1  0 14:10 ?        00:00:17 ../redis-server 0.0.0.0:7007 [cluster]
root     26660     1  0 14:32 ?        00:00:16 ../redis-server 0.0.0.0:7008 [cluster]
[root@localhost /]# kill 24263 26660
[root@localhost /]# ps -ef|grep cluster
root     21236  6432  0 23:19 pts/1    00:00:00 grep --color=auto cluster

查看集群是否正常

[root@localhost redis_cluster]# ./redis-cli -c -p 7001
192.168.135.23:7002> get test
-> Redirected to slot [12291] located at 192.168.135.196:7004
"success"
192.168.135.196:7004> cluster nodes
d5c04adcad1034d2b1bcb327a86a9519efe1ca04 192.168.135.196:7005@17005 slave d1983a08bade495716392200e2b3efbd09736631 0 1555601184508 7 connected
d1983a08bade495716392200e2b3efbd09736631 192.168.135.23:7001@17001 master - 0 1555601184120 7 connected 0-5460
9cd7049834c0f3183b474b0bd3e516b5359f6c67 192.168.135.196:7004@17004 myself,master - 0 1555601182000 9 connected 10923-16383
883862d8a29665094995ca75f41c39186979bbc0 192.168.135.229:7008@17008 slave,fail 9cd7049834c0f3183b474b0bd3e516b5359f6c67 1555601043264 1555601042000 9 disconnected
2f40bcf6bdde917a39ed67c47e943161b378d952 192.168.135.23:7002@17002 master - 0 1555601185527 10 connected 5461-10922
5d6bc6740e5bc88643377746d140fdf63f812d88 192.168.135.229:7007@17007 master,fail - 1555601043264 1555601043181 5 disconnected
192.168.135.196:7004> 

可以看出229挂掉后集群依然正常,实现了高可用,重启229上面的redis服务后会自动加入集群

192.168.135.196:7004> cluster nodes
d5c04adcad1034d2b1bcb327a86a9519efe1ca04 192.168.135.196:7005@17005 slave d1983a08bade495716392200e2b3efbd09736631 0 1555601482087 7 connected
d1983a08bade495716392200e2b3efbd09736631 192.168.135.23:7001@17001 master - 0 1555601483301 7 connected 0-5460
9cd7049834c0f3183b474b0bd3e516b5359f6c67 192.168.135.196:7004@17004 myself,master - 0 1555601479000 9 connected 10923-16383
883862d8a29665094995ca75f41c39186979bbc0 192.168.135.229:7008@17008 slave 9cd7049834c0f3183b474b0bd3e516b5359f6c67 0 1555601482303 9 connected
2f40bcf6bdde917a39ed67c47e943161b378d952 192.168.135.23:7002@17002 master - 0 1555601481000 10 connected 5461-10922
5d6bc6740e5bc88643377746d140fdf63f812d88 192.168.135.229:7007@17007 slave 2f40bcf6bdde917a39ed67c47e943161b378d952 0 1555601482503 10 connected

但是发现229上的redis重新启动后都变成了slave,23上面现在是两个master这样的话如果某天23服务器挂掉了,那集群肯定也就挂了,怎么办呢,没找到好的解决办法,于是就把23上面的那个原来的slave的给它kill掉,然后229上面对应的slave就有恢复成了原来的master了,不知道各位大神还有没有什么好的解决这个问题的办法?

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为天空着色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值