redis cluster集群-ruby及相关依赖安装

环境准备

  • centos7.4
  • redis-3.0.7

我觉得安装redis cluster集群的主要难点在于ruby及相关依赖安装

安装相关依赖包

1
2
3
yum -y install make openssl-devel zlib-devel gcc gcc-c++ make   
autoconf readline-devel curl-devel expat-devel gettext-devel
ncurses-devel sqlite3-devel mysql-devel httpd-devel wget which

我们可以通过yum list installed | grep **依赖包名**来检测包是否已安装。如果已安装会直接显示出来,没有安装则不显示

下载安装yaml

1
2
3
4
5
6
cd /opt/software
wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz
tar zxf yaml-0.1.5.tar.gz
cd yaml-0.1.5
./configure --prefix=/usr/local
make && make install

如果下载链接已经失效了,可以直接下载好包yaml-0.1.5.tar.gz,上传到服务器进行解压安装

下载安装ruby-1.9.3

1
2
3
4
5
6
cd /opt/software  
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
tar zxf ruby-1.9.3-p0.tar.gz
cd ruby-1.9.3-p0
./configure --prefix=/usr/local -disable-install-doc --with-opt-dir=/usr/local/lib
make && make install

在执行make命令的时候会报错,报错信息如下:

1
2
3
4
5
6
7
8
9
Error: ossl_pkey_ec.c:In functin 'ossl_ec_group_initialize':  

ossl_pkey_ec.c:816:error: 'EC_GROUP_new_curve_GF2m' undeclard

(first use in this function) ossl_pkey_ec.c:816:error:(Each

undeclard indentifier is reported only once ossl_pkey_ec.c:816

error:for each function it appearts in.)

问题原因:

由于centos新版本默认openssl的配置变更取消了对EC_xx的支持,所以出现该错误

解决方法:

修改目录ruby-1.9.3/ext/openssl/ossl_pkey_ec.c的两处源码

修改ruby源码1.png

修改ruby源码2.png

然后ruby-1.9.3 目录下执行以下命令:

1
2
3
make clean  #清除旧的文件
./configure --prefix=/usr/local -disable-install-doc --with-opt-dir=/usr/local/lib
make && make install

查看ruby是否安装成功

ruby成功.png

安装ruby的redis客户端依赖

可以在ruby-1.9.3-p0目录下,直接执行以下命令进行安装

gem install redis  

如果会提示你Fetching:redis-4.0.0.gem 需要更高版本的ruby。那么可以上传redis-3.2.1.gem至服务器,然后执行gem install --local /opt/software/redis-3.2.1.gem进行本地安装。下面就可以直接使用命令redis-trib.rb create --replicas创建redis cluster集群了