问题:
进入redis集群,查询key时报错:(error) CLUSTERDOWN The cluster is down
打算重新配置集群节点,但是配置集群节点时,执行命令/usr/local/redis-3.2.4/src/redis-trib.rb create --replicas 1 ip1 ip2 ip3 ip4 ip5 ip6时报错
具体报错没有记录下来。。。大体如下:
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_r
/usr/local/redis-3.2.4/src/redis-trib.rb:24:in `require': no such file to lo
from /usr/local/rvm/gems/ruby-2.4.1/gems/redis-4.1.2/lib/redis/cluster.rb:9:
/usr/local/rvm/gems/ruby-2.4.1/gems/redis-4.1.2/lib/redis/cluster.rb:9:in `r
/usr/local/rvm/gems/ruby-2.4.1/gems/redis-4.1.2/lib/redis/cluster/node_key.r
安装的redis版本是3.2.4,报错中出现了redis-4.1.2。。。这就有问题了,几经折腾,甚至卸载redis重装,总算解决。。
如上所说版本有问题,在6台服务器上执行命令 gem list 可以看到redis有两个版本(4.1.2 3.0.0),因为之前使用gem install redis-3.0.0.gem的,所以删除了4.1.2版本。
然后再执行集群配置的命令,但是报端口不通的错误:
最终按下面方案解决:修改6台服务器的配置文件,注释掉masterauth 和 requirepass 密码配置。然后重启redis,再执行集群配置命令就可以了。
如果要配置密码,可以动态修改:
连接redis节点进行配置设置,然后config rewrite 将配置同步到配置文件中,不需要重启节点。
redis-cli -p 8001 -c
config set masterauth redispassword
config set requirepass redispassword
auth redispassword
config rewrite
注意:每个节点的密码需要保持一致,不然Redirected的时候会失败。
这种方式不需要重启服务比较快,同时也修改了配置文件 。