1.创建 redis 用户
groupadd redis
useradd -g redis redis
passwd redis
2.安装ruby
# tar -xzvf ruby-2.3.1.tar.gz
# cd ruby-2.3.1
# ./configure
# make && make install
# gem install redis
可能遇到的问题
(1) [root@ll01 ruby-2.3.1]# gem install redis
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
解决方法:这是缺少zlib依赖
1)需要安装zlib库
yum install zlib-devel -y
2)集成zlib库到ruby环境
cd ./ext/zlib
ruby extconf.rb
#在操作下一步之前需要修改Makefile文件中的zlib.o: $(top_srcdir)/include/ruby.h,将$(top_srcdir)修改为../..如下
//zlib.o: ../../include/ruby.h
//这一步如果不修改,make时会爆出另外一个错误
//make:*** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop
make && make install
(2) ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
解决方法:这是缺少openssl依赖
1)yum install openssl-devel -y
2)在ruby安装包/root/ruby-2.4.1/ext/openssl,执行ruby ./extconf.rb
3)执行make,若出现make: *** No rule to make target `/include/ruby.h', needed by `ossl.o'.? Stop.;在Makefile顶部中的增加top_srcdir = ../..
4)执行make install
(3)ERROR: Could not find a valid gem 'redis' (>= 0) in any repository
解决方法:缺少源
gem sources -a http://rubygems.org
3.安装redis
/usr/local/rvm/gems/ruby-2.4.5/gems/redis-4.1.0/lib/redis/client.rb:124:in `call': ERR Invalid node address specified: hadoop01:7001 (Redis::CommandError)
from /usr/local/rvm/gems/ruby-2.4.5/gems/redis-4.1.0/lib/redis.rb:3282:in `block in cluster'
from /usr/local/rvm/gems/ruby-2.4.5/gems/redis-4.1.0/lib/redis.rb:50:in `block in synchronize'
from /usr/local/rvm/rubies/ruby-2.4.5/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
from /usr/local/rvm/gems/ruby-2.4.5/gems/redis-4.1.0/lib/redis.rb:50:in `synchronize'
from /usr/local/rvm/gems/ruby-2.4.5/gems/redis-4.1.0/lib/redis.rb:3281:in `cluster'
from ./redis-trib.rb:941:in `block in join_cluster'
from ./redis-trib.rb:939:in `each'
from ./redis-trib.rb:939:in `join_cluster'
from ./redis-trib.rb:1431:in `create_cluster_cmd'
from ./redis-trib.rb:1830:in `<main>'
这个错误说指定的节点地址无效、出现这个问题是因为./Redis-trib.rb对主机名识别不了,支持的不是很好。改为以下方式IP):
bin/redis-trib.rb create --replicas 1 192.168.235.31:6379 192.168.235.32:6381 192.168.235.33:6383 192.168.235.31:6380 192.168.235.32:6382 192.168.235.33:6384
bin/redis-cli -c -h poseidon01 -p 6379 -a password01