Redis 3和 4版本:
需要使用到集群管理工具redis-trib.rb,这个工具是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单、便捷、实用的操作工具,redis-trib.rb是redis作者用ruby开发完成的,centos 系统yum安装的ruby存在版本较低问题
解决ruby版本较低问题
[root@s1 src]# wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.5.tar.gz
[root@s1 src]# tar xf ruby-2.5.5.tar.gz
[root@s1 src]# cd ruby-2.5.5
[root@s1 ruby-2.5.5]# ./configure
[root@s1 ruby-2.5.5]# make -j 2
[root@s1 ruby-2.5.5]# make install
[root@s1 ruby-2.5.5]# gem install redis
最后验证命令是否能执行
[root@youyou1 redis-4.0.14]# cd src/
[root@youyou1 src]# ./redis-trib.rb help
Usage: redis-trib <command> <options> <arguments ...>
create host1:port1 ... hostN:portN
--replicas <arg>
错误一:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
解决:
[root@youyou1 zlib]yum install zlib-devel zlib
# 进入ruby源码文件夹
# 安装ruby自身提供的zlib包
[root@youyou1 ruby-2.5.5]# cd ext/zlib
[root@youyou1 zlib]#ruby ./extconf.rb
[root@youyou1 zlib]#make
(chmod +x Makefile):make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop.
[root@youyou1 zlib]# vi Makefile
zlib.o: $(top_srcdir)/include/ruby.h 改成 zlib.o: ../../include/ruby.h;
[root@youyou1 zlib]#make
[root@youyou1 zlib]#make install
错误二:
ERROR: While executing gem... (Gem::EXception)
Unable to require openssl,install OpenSSL and rebuild ruby (preferred) or use non-HTTPS source
[root@youyou1 ruby-2.5.5]# yum install openssl-devel
[root@youyou1 ruby-2.5.5]# cd ext/openssl/
[root@youyou1 openssl]#ruby ./extconf.rb
[root@youyou1 openssl]# make
make: *** No rule to make target `/include/ruby.h', needed by `ossl.o'. Stop.
[root@youyou1 openssl]# vi Makefile
在Makefile顶部中的增加top_srcdir = ../..
[root@youyou1 openssl]# make install