centos7 环境下搭建redis集群(包含各种错误解决)

环境简介:centos 7  + redis-3.2.4

redis各个版本下载:http://download.redis.io/releases/

本次用两个服务6个节点来搭建:192.168.23.111 留个端口区分

注意 ,redis 集群使用redis-trib.rb 必须3主3从 ,也就是6个节点!

详细步骤:

1:下载解压redis-3.2.4

cd /usr/local/software
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz 

2.安装  三个节点都安装

cd redis-3.2.4
make && make install

3. 将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src
cp redis-trib.rb /usr/local/bin

4.创建运行目录复制配置文件 创建6个节点redis

复制代码

cd /usr/local
mkdir redis-cluster
cd redis-cluster
mkdir redis-3.2.4-node1 redis-3.2.4-node2 redis-3.2.4-node3 
cd redis-3.2.4 -node1
mkdir logs data 
cd /usr/local/software/redis-3.2.4 
cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node1
cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node2
cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node3
cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node4
cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node5
cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node6
cd src 
cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node1
cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node2
cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node3
cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node4 
cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node5 
cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node6

5. 6个节点分别进行如下配置

vim /usr/local/redis-3.2.4-node1/redis.conf   //其他类似

  找到以下信息并修改

port  7000 //端口7000,7001,7002        
bind 192.168.23.111 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /usr/local/redis-cluster/redis-3.2.4-node1/redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes  //开启aof
logfile "/usr/local/redis-cluster/redis-3.2.4-node1/logs/redis_7001.log" //配置日志输入路劲  7000 7001 7002
dir "/usr/local/redis-cluster/redis-3.2.4-node1/data"  //配置数据文件存放路劲

6.分别运行redis

cd /usr/local/redis-cluster/redis-3.2.4-node1
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-3.2.4-node2
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-3.2.4-node3
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-3.2.4-node4 
./redis-server redis.conf 
cd /usr/local/redis-cluster/redis-3.2.4-node5 
./redis-server redis.conf 
cd /usr/local/redis-cluster/redis-3.2.4-node6
./redis-server redis.conf

7.检查是否运行

ps -ef|grep redis

8.使用 redis-trib.rb创建集群

   8.1 因为依赖ruby  所以先安装ruby

   

yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

当出现错误时

ERROR:  Error installing redis:
redis requires Ruby version >= 2.2.2.

这一步骤中出现了bug,度娘告诉我是Ruby版本太低,需要升级版本。

  先升级ruby版本

curl -L get.rvm.io | bash -s stable
当出现错误时
NOTE: GPG version 2.1.17 have a bug which cause failures during fetching keys from remote server. Please downgrade or upgrade to newer version (if available) or use the second method described above.
获得密钥
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
继续执行
curl -sSL https://get.rvm.io | bash -s stable

当出现错误信息如下:
curl: (35) SSL connect error
There was an error(35).
Checking fallback: https://ftp.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.bz2
No fallback URL could be found, try increasing timeout with:

    echo "export rvm_max_time_flag=20" >> ~/.rvmrc

There has been an error fetching the ruby interpreter. Halting the installation.

可能是nss版本过低

使用命令:yum update nss

在做redis集群时,所需要的使用ruby工具进行操作,发现在线安装的Ruby版本过低,redis支持的版本最少为2.2.2.

在线安装ruby 
使用yum在线安装ruby,安装的版本为2.0.0。

yum install ruby
ruby -v


添加ruby仓库
添加aliyun镜像并检测Ruby版本

gem sources -a http://mirrors.aliyun.com/rubygems/ 


安装RAM
RAM(Ruby Version Manager )是一款RAM的命令行工具,可以使用RAM轻松安装,管理Ruby版本。RVM包含了Ruby的版本管理和Gem库管理(gemset)

可以使用如下命令进行安装RAM:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable


出现如下信息代表安装成功: 

更新配置文件,使其立马生效:

source /etc/profile.d/rvm.sh


查看RVM版本信息,如果可以代表安装成功。

rvm -v


接下来查看Ruby版本:

rvm list known

安装2.2以上就可以

rvm install 2.5


出现如下信息,代表安装成功: 

验证版本:

成功升级。

8.2安装完成,是rvm可用

source /usr/local/rvm/scripts/rvm
这一步可能耗时较长,耐心等待。

8.3 安装gem redis接口
gem install redis
8.6 安装rubygems
yum install -y rubygems
到目前为止,我们的Ruby和运行redis-trib.rb需要的环境安装完成了

9.测试集群

先启动所有redis然后输入命令
redis-trib.rb create --replicas 1 192.168.23.111:7000 192.168.23.111:7001 192.168.23.111:7002 192.168.23.111:7003 192.168.23.111:7004 192.168.23.111:7005
error 1 : 这里出现join......,记得关闭防火墙。  
error 2: 连接失败。需要将logs和data文件先清空,进入redis  flushall  即可。在重启redis

  10 测试客户端连接

随便进一个节点  
redis-cli -h 192.168.23.111 -c -p 7000
set k1 v1
另外一个服务选一个节点 
redis-cli -h 192.168.23.111 -c -p 7000
get k1

安装完毕

如果出现not empty错误,删除data下的文件夹重启启动即可

例如

rm -rf redis-3.2.4-node1/data/*
rm -rf redis-3.2.4-node2/data/*
rm -rf redis-3.2.4-node3/data/*
rm -rf redis-3.2.4-node4/data/*
rm -rf redis-3.2.4-node5/data/*
rm -rf redis-3.2.4-node6/data/*

cd /usr/local/redis-cluster/redis-3.2.4-node1
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-3.2.4-node2
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-3.2.4-node3
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-3.2.4-node4 
./redis-server redis.conf 
cd /usr/local/redis-cluster/redis-3.2.4-node5 
./redis-server redis.conf 
cd /usr/local/redis-cluster/redis-3.2.4-node6
./redis-server redis.conf
启动所有redis 后 执行  命令
redis-trib.rb create --replicas 1 192.168.23.111:7000 192.168.23.111:7001 192.168.23.111:7002 192.168.23.111:7003 192.168.23.111:7004 192.168.23.111:7005
通过 redis-cli -h 192.168.23.111 -c -p 7000 查看指定端口
原文地址:https://www.cnblogs.com/liclBlog/p/15349504.html