1. 程式人生 > >執行redis-trib.rb時遇到的問題

執行redis-trib.rb時遇到的問題

執行 etc etime lin ssi test -i nbsp clas

redis-trib.rb是Redis Cluster的一個常用工具。下面記錄了執行此命令時遇到的一系列錯誤。

redis-trib.rb create --replicas 1  127.0.0.1:7379 127.0.0.1:7380 127.0.0.1:7381 127.0.0.1:7382 127.0.0.1:7383 127.0.0.1:7384 
/usr/bin/env: ruby: 沒有那個文件或目錄

看來是ruby沒有安裝,於是執行:

yum install -y ruby    //安裝ruby


後面繼續報錯:

redis-trib.rb create --replicas 1  127.0.0.1:7379 127.0.0.1:7380 127.0.0.1:7381 127.0.0.1:7382 127.0.0.1:7383 127.0.0.1:7384 
redis
-trib.rb:24:in `require: no such file to load -- rubygems (LoadError) from src/redis-trib.rb:24

ruby安裝成功,但是rubygem沒有安裝,所以導致了上述錯誤,於是繼續:

yum install -y rubygems        //安裝rubygem 

再看:

redis-trib.rb create --replicas 1  127.0.0.1:7379 127.0.0.1:7380 127.0.0.1:7381 127.0.0.1:7382 127.0.0.1:7383 127.0.0.1:7384 
/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

rubygem安裝成功,但是新的錯誤又出現了。google了一下,發現是ruby版本太低了。yum安裝的版本是1.8.7,但是redis需要的是1.9.3或者更高,於是升級ruby版本到1.9.3.

curl -L get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh        //安裝rvm 
rvm install 
1.9.3 //安裝ruby1.9.3 rvm use 1.9.3 --default //設置ruby1.9.3為默認的ruby,因為還安裝有1.8.3

再看:
gem install redis ERROR:  Could not find a valid gem redis (>= 0), here is why:           
Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Connection timed out - connect(2) 
(https://api.rubygems.org/latest_specs.4.8.gz) ERROR: Possible alternatives: redis

又遇到新的錯誤了,看來是連接gem源出錯了,於是增加新的gem源:
gem sources -a http://ruby.taobao.org/        //添加淘寶的gem源

然後”gem install redis“執行成功,之後的”redis-trib.rb create ......“也ok了。

BTW:其實ruby1.8.7也支持redis-trib.rb,也就是說在ruby1.8.7上執行”redis-trib.rb create ......“時出現的錯誤是由於沒有安裝針對redis的gem包,所以只要成功執行”gem install redis"即可。不過不建議使用ruby1.8.7,因為這個版本有點老了,使用rvm安裝ruby1.8.7時,提示對此版本已經不提供支持了。

------------------------我是華麗的分隔線----------------------------

其實redis集群跑不起來這個原因還是ruby沒安裝好,可以直接嘗試重裝ruby.

以下有個linux下安裝ruby的步驟:

http://www.runoob.com/ruby/ruby-installation-unix.html

執行redis-trib.rb時遇到的問題