【Redis】【Ruby】redis4.0版本单机多实例集群create-cluster脚本创建,及脚本中使用ruby创建集群报错的解决思路和方法

136 阅读2分钟

新版本redis的集群创建会更加简单,因为生产环境使用的是4.0版本故需要研究一下4.0的集群创建。

在redis4.0的源码包中有一个utils目录,其中的create-cluster目录下有一个create-cluster脚本,有三个可选参数分别为start create 和 stop,这单个参数可以用于集群的启动 创建 和 停止操作
image-1657210818725

当执行create 参数创建集群时或报错,下面开始复现操作和解决方案

下载源码

wget https://download.redis.io/releases/redis-4.0.14.tar.gz

安装编译依赖

编译之前需要有 gcc gcc-c++ make等依赖

yum install -y gcc gcc-c++ make

解压源码

tar -zxvf redis-4.0.14.tar.gz

进去解压后的目录

cd redis-4.0.14

编译源码

make

启动集群

cd ./utils/create-cluster
./create-cluster start

查看进程中是否有redis

ps -ef | grep redis

image-1657211596498

创建集群

./create-cluster create

image-1657212046765
提示没有ruby

因为集群创建使用的是ruby脚本素以需要先安装ruby

安装ruby

sudo yum install ruby

通过 ruby -v命令可以看到安装的是2.0版本
image-1657212171287

再次尝试创建集群

./create-cluster create

image-1657212205555
出问题了缺少依赖

/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
        from ../../src/redis-trib.rb:25:in `<main>'

安装依赖

gem install redis

因为网络问题在线安装基本不会成功,我们去gem官网去下载redis依赖

wget https://rubygems.org/downloads/redis-4.7.1.gem

image-1657212531061
下载成功以后安装 gem redis 依赖

安装gem redis

gem install ./redis-4.7.1.gem

image-1657212611356

ERROR:  Error installing ./redis-4.7.1.gem:
        redis requires Ruby version >= 2.4.0.

报错了,ruby版本太低了,我安装的是2.0.0他需要大于2.4
现在有两个解决方案升级ruby或者安装低版本的 gem redis 依赖
这里我选择安装低版本的gem redis依赖

下载并安装低版本gem redis依赖

wget https://rubygems.org/downloads/redis-3.3.5.gem

image-1657212743286
下载成功了
开始安装

gem install ./redis-3.3.5.gem

image-1657212795097
可以看到安装成功了

再次执行集群创建

./create-cluster create

image-1657212871805
可以看到集群创建成功了

新版本的redis创建集群会更简单,后面会介绍。