CentOS7 64位配置Redis集群错误处理(1)

0.环境介绍

Linux采用CentOS7 64位
主节点:
192.168.25.137:7000
192.168.25.138:7000
192.168.25.139:7000
从节点
192.168.25.137:7001
192.168.25.138:7001
192.168.25.139:7001

1.现处于的状态

1.redis 安装配置完成,修改了端口,修改
daemonize yes
cluster-enabled yes

2.安装了ruby的运行环境
yum install ruby
yum install rubygems

3.安装了ruby脚本运行使用的包
Windows环境下下载redis-3.0.0.gem,并上传至服务器
gem install redis-3.0.0.gem

4.拷贝了redis-trib.rb到目标文件下


此时此刻在192.168.25.137上执行ruby脚本搭建集群

./redis-trib.rb create --replicas 1 192.168.25.137:7000 192.168.25.138:7000 192.168.25.139:7000 192.168.25.137:7001 192.168.25.138:7001 192.168.25.139:7001 

报错

>>> Creating cluster
Connecting to node 192.168.25.137:7000: OK
/usr/local/share/gems/gems/redis-3.0.0/lib/redis.rb:182: warning: wrong element type nil at 0 (expected array)
/usr/local/share/gems/gems/redis-3.0.0/lib/redis.rb:182: warning: ignoring wrong elements is deprecated, remove them explicitly
/usr/local/share/gems/gems/redis-3.0.0/lib/redis.rb:182: warning: this causes ArgumentError in the next release
。。。
。。。
。。。

Connecting to node 192.168.25.138:7000: [ERR] Sorry, can't connect to node 192.168.25.138:7000

2.主机间无法通信问题

Connecting to node 192.168.25.138:7000: [ERR] Sorry, can't connect to node 192.168.25.138:7000

测试192.168.25.137是否可以连接192.168.25.138:7000

[root@localhost redis_cluster]# telnet 192.168.25.138 7000
-bash: telnet: command not found

说明没有安装telnet

2.1安装telnet

1)首先检测安装了什么

[root@localhost redis_cluster]# rpm -qa telnet-server 
[root@localhost redis_cluster]#  

说明什么都没有装

2)安装telnet-server,telnet

先安装telnet-server
[root@localhost redis_cluster]# yum install telnet-server
再安装telnet
[root@localhost redis_cluster]# yum install telnet

3)重启xinetd

由于telnet服务也是由xinetd守护的,所以安装完telnet-server,要启动telnet服务就必须重新启动xinetd

[root@localhost redis_cluster]# systemctl restart  xinetd.service
Failed to issue method call: Unit xinetd.service failed to load: No such file or directory.
[root@localhost redis_cluster]# 

安装xinetd

[root@localhost redis_cluster]# yum install xinetd
[root@localhost redis_cluster]#  telnet 192.168.25.138 7000
Trying 192.168.25.138...
telnet: connect to address 192.168.25.138: No route to host
[root@localhost redis_cluster]# 

测试结果:192.168.25.137确实不可以连接192.168.25.138:7000

2.2检查防火墙

[root@localhost redis_cluster]# firewall-cmd --state      
not running

防火墙没开,那就不存在端口被限制的情况

经多方查找,重新启动防火墙,然后再次关闭防火墙,即可

[root@localhost redis_cluster]#  telnet 192.168.25.138 7000
Trying 192.168.25.138...
Connected to 192.168.25.138.
Escape character is '^]'.
^]
telnet> q
Connection closed.
[root@localhost redis_cluster]# 

3.接下来的步骤

3.1在192.168.25.137上执行ruby脚本搭建集群

./redis-trib.rb create --replicas 1 192.168.25.137:7000 192.168.25.138:7000 192.168.25.139:7000 192.168.25.137:7001 192.168.25.138:7001 192.168.25.139:7001 

>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.25.137:7000
192.168.25.138:7000
192.168.25.139:7000
Adding replica 192.168.25.138:7001 to 192.168.25.137:7000
Adding replica 192.168.25.137:7001 to 192.168.25.138:7000
Adding replica 192.168.25.139:7001 to 192.168.25.139:7000
M: 51cc4c3af645fc900c4a8bc575985b02682ec5fd 192.168.25.137:7000
   slots:0-5460 (5461 slots) master
M: a047bdebca2e0c59848674cc06af269111c22876 192.168.25.138:7000
   slots:5461-10922 (5462 slots) master
M: 1c5c95884c210e8da711554ce60f8e38a21262ac 192.168.25.139:7000
   slots:10923-16383 (5461 slots) master
S: f886fcf843e0cde7e6418dff509db31c0c905294 192.168.25.138:7001
   replicates 51cc4c3af645fc900c4a8bc575985b02682ec5fd
S: 0185165fdb8f043cbecb7c88354e7ee038df89de 192.168.25.137:7001
   replicates a047bdebca2e0c59848674cc06af269111c22876
S: 3bf36d099c13d545b6b2e7c66c3c9b2520cb07a4 192.168.25.139:7001
   replicates 1c5c95884c210e8da711554ce60f8e38a21262ac
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.25.137:7000)
M: 51cc4c3af645fc900c4a8bc575985b02682ec5fd 192.168.25.137:7000
   slots:0-5460 (5461 slots) master
M: a047bdebca2e0c59848674cc06af269111c22876 192.168.25.138:7000
   slots:5461-10922 (5462 slots) master
M: 1c5c95884c210e8da711554ce60f8e38a21262ac 192.168.25.139:7000
   slots:10923-16383 (5461 slots) master
M: f886fcf843e0cde7e6418dff509db31c0c905294 192.168.25.138:7001
   slots: (0 slots) master
   replicates 51cc4c3af645fc900c4a8bc575985b02682ec5fd
M: 0185165fdb8f043cbecb7c88354e7ee038df89de 192.168.25.137:7001
   slots: (0 slots) master
   replicates a047bdebca2e0c59848674cc06af269111c22876
M: 3bf36d099c13d545b6b2e7c66c3c9b2520cb07a4 192.168.25.139:7001
   slots: (0 slots) master
   replicates 1c5c95884c210e8da711554ce60f8e38a21262ac
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost redis_cluster]# ll

3.2 使用Redis-cli连接集群

[root@localhost redis]# ./redis-cli -h 192.168.25.138 -p 7000 -c
192.168.25.138:7000> set a 1
-> Redirected to slot [15495] located at 192.168.25.139:7000
OK
192.168.25.139:7000> set b 2
-> Redirected to slot [3300] located at 192.168.25.137:7000
OK
192.168.25.137:7000> set c 3
-> Redirected to slot [7365] located at 192.168.25.138:7000
OK
192.168.25.138:7000>  set d 4
-> Redirected to slot [11298] located at 192.168.25.139:7000
OK
192.168.25.139:7000> keys *
1) "a"
2) "d"
192.168.25.139:7000> set f 12
-> Redirected to slot [3168] located at 192.168.25.137:7000
OK
192.168.25.137:7000> keys *
1) "f"
2) "b"
192.168.25.137:7000> quit
[root@localhost redis]# 

你可能感兴趣的:(CentOS7 64位配置Redis集群错误处理(1))