1.出现from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require’ from ./redis-trib.rb:2 错误
在使用ruby进行搭建redis集群。在使用./redis-trib.rb create --replicas 1 自己的IP:7001 自己的IP:7002 自己的IP:7003 自己的IP:7004 自己的IP:7005 自己的IP:7006 创建集群的时候出现:
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ./redis-trib.rb:2
主要原因就是少安装 rubygems 解决办法:
执行命令 进行安装
yum install rubygems
另外查看一下有没有少安装ruby脚本所需的东西
##安装ruby:
yum install ruby
##安装ruby包管理器:
yum install rubygems
##安装ruby脚本运行使用的包 在线安装:
gem install redis -v 3.0.7
2.(error) CLUSTERDOWN The cluster is down
在使用ruby搭建好集群之后 进去某个端口之后进行set key value 的时候发现集群挂掉了,我在网上也找了一部分的解决方法,大部分的都是进行修复,然后在进行查看。有很多人都解决了。进入redis-trib.rb的目录(这个文件是在你的redis安装目录src下,可以使用 ll *.rb进行查看,同样你也可以将此文件复制到你的集群文件夹下)
修复命令:
./redis-trib.rb fix 你的IP:7001
修复结束后,再次检测:
./redis-trib.rb check 你的IP:7001
一般都可以修复好。
我的问题是因为我个人比较粗心大意 在使用ruby进行安装集群的时候 中间有一步是需要输入yes的 但是没有仔细去看直接输了个 y (因为之前使用yum安装其他的时候好像都是直接输入 y。。。。啊~~~~相信你们不会像我那么傻。。。),如下图,最后一行,输入yes
3.>>> Creating cluster
[ERR] Node 你的IP:7002 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
这个错误的原因是表示创建这个集群时,之前的redis已有数据(确实,因为我在前一天是对这个集群数据进行了操作的,昨天晚上我将服务器关掉了),那么登录到7002的redis中,执行FLUSHALL即可
cd redis02/bin
./redis-cli -p 7002
FLUSHALL
如果出现ok的字样表示是成功的。
但是如果出现(error) READONLY You can't write against a read only slave.
则表示问题还是没有解决成功,接下来将各个redis下的dump.rdb nodes.conf 这两个文件删除。
如果一个一个的进行删除太麻烦 直接编写一个脚本delete-all-rdb.sh
cd redis01
rm -rf dump.rdb
rm -rf nodes.conf
cd ..
cd redis02
rm -rf dump.rdb
rm -rf nodes.conf
cd ..
cd redis03
rm -rf dump.rdb
rm -rf nodes.conf
cd ..
cd redis04
rm -rf dump.rdb
rm -rf nodes.conf
cd ..
cd redis05
rm -rf dump.rdb
rm -rf nodes.conf
cd ..
cd redis06
rm -rf dump.rdb
rm -rf nodes.conf
cd ..
执行此文件之后,在进行编辑各个redis服务器下的redis.conf中的cluster-config-file nodes-6379.conf
的注释放开,改成你相应redis的端口
再将 各个redis服务器重启 ,重新创建集群就可以了
4./usr/lib/ruby/gems/1.8/gems/redis-3.0.0/lib/redis/client.rb:79:in `call’: ERR Slot 15495 is already
错误代码如下:
这个错误就是上一个问题中最后一个步骤没做就会报这个错误。解决方法就是将各个redis服务器的redis.conf文件中的cluster-config-file nodes-6379.conf(使用/cluster进行搜索)注释放开,改成你相应的redis端口(这个名字随便,但是不要重复)。至此问题解决