Redis搭建集群的过程与遇到的问题

报错信息:[ERR] Sorry, can’t connect to node 127.0.0.1

At least 6 nodes is required

Too many cluster redirections redis?

来自:behance 画师( Kirill Kleymenov

( 报错信息的解决在文章尾部 )

redis搭建环境

Ubuntu版本18.04+redis版本5.0.5

redis安装(已经安装跳过)

安装环境:(服务器自带跳过)

yum install gcc-c++

下载/安装:

wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5
#编译源码
make
make install PREFIX=/usr/local/redis

修改配置文件redis.conf

vim redis.conf 	
		
daemonize yes                      #守护进程
#bind 127.0.0.1                    #注释掉
requirepass 123456                 #设置密码,可以不设置默认为空
protected-mode no                  #关闭保护模式,远程连接不上加上

复制配置文件到/usr/local/redis/bin:

cp redis.conf /usr/local/redis/bin/

启动与停止:

!记得开放端口6379或干掉防火墙!

cd /usr/local/redis/bin
./redis-server redis.conf             #启动
./redis-cli shutdown                  #停止

集群搭建

搭建Ruby环境:(服务器自带跳过)

#centos
yum install ruby
yum install rubygems
	
#Ubuntu
apt-get install ruby
apt-get install rubygems

安装接口程序:

gem update        #服务器自带更新一下
gem install /usr/local/redis-3.0.0.gem

复制redis-trib.rb:【报错点1】

cd /root/redis-5.0.5/src
cp redis-trib.rb /usr/local/redis/rediscluster/ -r

复制出一个7001机器:

cp bin ./redis-cluster/7001 –r
#如果存在持久化文件,则删除
rm -rf appendonly.aof dump.rdb

设置集群参数:【报错点2】

cd 7001
vim redis.conf


cluster-enabled yes
port 7001                           #对应文件夹名
protected-mode no
cluster-config-file nodes-7001.conf    #对应文件夹名,没有无所谓启动时会生成
#bind 127.0.0.1                     #注释掉

复制7001到其他5份(7002-7006):

cp 7001/ 7002 -r
cp 7001/ 7003 -r
cp 7001/ 7004 -r
cp 7001/ 7005 -r
cp 7001/ 7006 -r

#修改7002-7006的端口与cluster-config
#略

编写启动脚本startall.sh:【报错点3】

vim startall.sh

#!/bin/bash										
cd 7001
./redis-server redis.conf
cd ..
cd 7002
./redis-server redis.conf
cd ..
cd 7003
./redis-server redis.conf
cd ..
cd 7004
./redis-server redis.conf
cd ..
cd 7005
./redis-server redis.conf
cd ..
cd 7006
./redis-server redis.conf
cd ..

#保存退出并赋予权限
chmod +x startall.sh

启动各自服务并创建集群:

sh startall.sh
./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

处理报错

报错点1:redis-5.0.5安装后自带的redis-trib.rb版本比gem3.0.6版本过高

解决方式:下载低版本的redis的源码包(这里找的是3.2.0),找到里面的redis-trib.rb复制到服务器中覆盖原文件

报错点2:创建集群是不可以设置密码的,否则集群启动报错 Sorry, can’t connect to node …

解决方式:修改7001-7006的配置文件注释掉密码

#requirepass 123456                注释掉

报错点3:一开始我只创建了7001-7003,启动后报错 At least 6 nodes is required

!搭建集群最少要3台主机每台主机配一台从机最少要6台机器!

解决方式:复制其余3份,再次启动集群

补充:在用java代码去连接集群时,出现报错Too many cluster redirections redis?

解决方式:启动集群时将127.0.0.1改为真实ip即可

以上解决

发表回复