搭建 Redis Cluster 时遇到的错误汇总

首先

请参考以下关于Redis构建的页面。
关于Redis构建的总结请参考。

我总结了在构建Redis Cluster时出现的错误。

环境 –

CentOS 6.8
Redis 3.2.5
Ruby 2.3.2

CentOS 6.8、Redis 3.2.5、Ruby 2.3.2

错误列表 (Cuò wù liè

无法加载此文件

redis-trib.rb: cannot load such file -- redis (LoadError)
$ gem install redis

通过解决

如果出现了Redis::Timeout的错误

由于在gem中安装的Redis可能存在缺陷的可能性,

$ gem install redis -v 3.2 # 3.2はredisのバージョンに合わせる

将版本进行匹配

槽位16011已经被占用(Redis::CommandError)

[ERR] Node 192.168.56.112:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

由于已经为构建CLUSTER而保留了插槽,所以无法创建新的CLUSTER。

当在主要集群构建过程中中断,并尝试重新构建集群时发生的情况。

解决方案

redis-cli -h xxx.xxx.xx.xxx -c CLUSTER RESET

对所有服务器执行

如果仍然无法解决的话

清空Redis内的数据库后再执行。

$ redis-cli -h 192.168.56.111 -c
192.168.56.111:6379> select 0
OK
192.168.56.111:6379> flushdb
OK
192.168.56.111:6379> flushall
OK

192.168.56.111:6379> exit
$ redis-cli -h xxx.xxx.xx.xxx -c CLUSTER RESET

如果仍无法完成,请尝试逐个终止Redis进程。

执行./redis-trib时,会持续出现「…」并且无法结束。

等待集群加入,无休止地进展着。

$ iptables -I INPUT -p tcp -m tcp --dport 16379 --syn -j ACCEPT
$ service iptables save
$ service iptables restart

所有服务器上都必须允许 Redis 服务器指定的端口号加上10000。

如果问题仍无法解决,
有可能是由于”/etc/redis/${REDISPORT}.conf”文件中bind的设定而导致的。

$ vim /etc/redis/6379.conf
# bind 127.0.0.1 192.168.56.xxx

将 192.168.56.xxx 绑定到 127.0.0.1,以确保 IP 地址 192.168.56.xxx 先于其他地址被使用。

如果仍无法解决,请检查是否存在尚未终止的/etc/redis/6379.conf编辑前的进程,导致配置无法生效。

$ ps aux | grep redis
root      1361  0.0  0.7  40784  7712 ?        Ssl  13:05   0:00 /usr/local/bin/redis-server 192.168.56.112:6379 [cluster]
root      1405  0.0  0.0 103324   904 pts/0    S+   13:12   0:00 grep redis
$ kill 1361

杀掉进程后再次构建集群,成功启动。

广告
将在 10 秒后关闭
bannerAds