搭建Redis集群引发的Ruby版本问题的解决

昨天搭建Redis集群时,因为需要用到ruby脚本,所以直接yum install ruby安装,但是当执行

./src/redis-trib.rb create --replicas 2 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 172.17.0.9:6379 172.17.0.10:6379

这个命令时,提示:

./src/redis-trib.rb:24:in `require’: no such file to load – rubygems (LoadError)
from ./src/redis-trib.rb:24

意思是没有安装gem,于是又开始用yum install rubygems,安装完成后,心想这下该行了吧,结果一执行,又给我报了一个这样的错:

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in ‘gem_original_require’: no such file to load – redis (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require’
from ./src/redis-trib.rb:25

……于是又上网接着搜解决方案,说是有一个redis依赖的gem包缺失,需要安装才行,执行gem install redis即可,于是我就乖乖执行这句命令,结果又给我报一个:

ERROR: Error installing redis:
redis requires Ruby version >= 2.3.0.

此时我内心已经奔溃,到底有完木完???但是身为一个程序员,必须要有与二进制恶势力死磕到底的精神,所以我继续上网搜索解决办法,找到了一个ruby-2.2.3.tar.gz的安装包,心想这下行了吧?

结果安装到一半报错了,不明原因的死活装不上,在此不再赘述。

于是我又接着上网搜安装高版本ruby的解决方案,找到一个使用RVM方式安装ruby和gem的方案,是使用curl下载安装的方式,但是前提是必须要有一个公钥,从网上搜了好几个版本,都会报公钥验证错误,总之就是没法闹!

正当我在放弃和自尽之间犹豫不决时,突然找到了菜鸟教程里的ruby安装方法,艾玛,简直是救命稻草。里面说的又详尽又清晰,关键是RVM的安装方法终于管用了!

献上文章地址:Ruby 安装 - Linux

这次公钥终于验证通过了,成功安装了RVM,之后又用RVM成功安装了ruby新版本(同时rmv会自动安装对应的gem),再执行

gem install redis

也顺利完成,这下该有的都有了,应该没问题了吧?

再次执行./src/redis-trib.rb create --replicas 2 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 172.17.0.9:6379 172.17.0.10:6379

报了一个这样的错

[ERR] Node 172.17.0.3:6379 is not configured as a cluster node.

嗯……不错,终于是集群内部的问题,而不再是ruby的问题了!

原来是因为修改reids.conf集群配置后没有重启redis服务器的关系,重启一下redis,果然:

Using 3 masters:
172.17.0.2:6379
172.17.0.3:6379
172.17.0.4:6379
Adding replica 172.17.0.5:6379 to 172.17.0.2:6379
Adding replica 172.17.0.6:6379 to 172.17.0.2:6379
Adding replica 172.17.0.7:6379 to 172.17.0.3:6379
Adding replica 172.17.0.8:6379 to 172.17.0.3:6379
Adding replica 172.17.0.9:6379 to 172.17.0.4:6379
Adding replica 172.17.0.10:6379 to 172.17.0.4:6379
M: 228b4e5c151f37e5b085b2ea5c9189e2c1c5df20 172.17.0.2:6379
slots:0-5460 (5461 slots) master
M: ba4d98c0d78f5d0476de1f304298839ad13ed82d 172.17.0.3:6379
slots:5461-10922 (5462 slots) master
M: f754b215a40de787e4310950950061aba500e131 172.17.0.4:6379
slots:10923-16383 (5461 slots) master
S: 9a25ae50560b2fc3caae00a0b07aabab386fdd42 172.17.0.5:6379
replicates 228b4e5c151f37e5b085b2ea5c9189e2c1c5df20
S: c9d6e176f259b633fe4e401d4ecb84d3a04b48c3 172.17.0.6:6379
replicates 228b4e5c151f37e5b085b2ea5c9189e2c1c5df20
S: ca6ef6cefbf05d46e4d924899781a18072113808 172.17.0.7:6379
replicates ba4d98c0d78f5d0476de1f304298839ad13ed82d
S: 720e4ea5eaedeb6f67bfeac52605c8cc1a8d96ce 172.17.0.8:6379
replicates ba4d98c0d78f5d0476de1f304298839ad13ed82d
S: ed7389185864bae82b5ad7987c1042e81040c7b4 172.17.0.9:6379
replicates f754b215a40de787e4310950950061aba500e131
S: 9e1e260dac06888c73868b3431e9b1f36fa6fd87 172.17.0.10:6379
replicates f754b215a40de787e4310950950061aba500e131

……呼……这次真的没问题了,长出一口气,搞定!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值