搭建 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
杀掉进程后再次构建集群,成功启动。