前言:

本文将介绍Redis5.0三主三从集群搭建以及集群配置。

redis3.0集群部署 redis5.0.8集群搭建_redis

一.资源配置(3主3从集群)

1.以下为生产环境下,集群搭建所需资源配置:

资源

配置

cpu

4核*6

内存

16G*6

硬盘

20G *6

linux版本

CentOS 7.5 64bit

2.服务器分配:

linux服务器

ip

1

10.39.77.41

2

10.39.77.42

3

10.39.77.43

4

10.39.77.44

5

10.39.77.45

6

10.39.77.46

3.redis和linux版本:

名称

版本

redis

5.0.8

centos

7.5 ( 64bit )

二.下载

分别在六台服务器执行:

安装wget:

yum install wget

下载redis到/usr/local路径下:

cd  /usr/local && wget http://download.redis.io/releases/redis-5.0.8.tar.gz

三.编译

在所有服务器上,执行下述命令:

解压:

tar -zxvf redis-5.0.8.tar.gz

安装gcc:

yum install gcc

编译Redis

cd redis-5.0.8 
make

编译时出现错误:

cd src && make all
make[1]: Entering directory `/home/liuchaofan/redis-3.0.7/src'
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/home/liuchaofan/redis-3.0.7/src'
make: *** [all] Error 2

若出现上述报错,执行命令:

make CFLAGS="-march=x86-64"

编译时另一个报错:

zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory

redis3.0集群部署 redis5.0.8集群搭建_RDM无法连接_02


若出现上述报错,则执行命令:

make MALLOC=libc

编译成功,如下图:

redis3.0集群部署 redis5.0.8集群搭建_redis_03

四.安装

在所有服务器上,,执行安装命令:

cd redis-5.0.8 

make install

安装成功后,redis-5.0.8的src目录下,会出现redis-server和redis-cli:

redis3.0集群部署 redis5.0.8集群搭建_redis集群搭建教程_04


redis单机启动测试,测试redis单机编译和安装是否正确:

src/redis-server redis.conf

出现启动成功,则说明安装成功。

测试完成后,要杀死上面启动的redis进程,执行命令:

kill -9  $(ps aux | grep redis | grep -v grep | awk '{print $2}')
或:
kill -9  $(ps aux | grep redis | grep -v grep | awk '{print $2}')  && ps -ef|grep redis

四.集群搭建

1.重命名redis-5.0.8文件夹名为redis

将文件夹重命名为redis,方便以后敲命令操作,也更美观一些。

mv redis-5.0.8 ./redis

2.修改每个服务器的redis.conf配置文件

以下是需要修改的地方摘要,根据自己情况,每个服务器都要配置一遍:

# 开启一个数据db0,默认是16个,我们只开启一个即可
databases 1

# 集群需要把这个参数注释掉,不需要再绑定ip,在创建集群时,指定一次ip即可
# bind 127.0.0.1 

# 记得创建data目录
dir /usr/local/redis/data

# 待验证是否有用
pidfile /usr/local/redis/data/redis_6379.pid

#集群节点信息文件名称(将生成在上面dir配置的路径下)
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
cluster-enabled yes

# 关闭保护模式(yes 表示只允许本地连接,别的IP将无法连接)
protected-mode no

# 开启守护线程,开启后可以后台运行
daemonize yes

# 开启AOF模式,no:代表RDB模式
appendonly yes

# 设置密码为123456
requirepass 123456

# 日志文件地址,记得创建logs目录
#logfile "/usr/local/redis/logs/redis.log"

3.创建redis数据存储和日志目录

将这两个目录挂载到指定位置,方便我们统一查看:

mkdir  /usr/local/redis/data

mkdir  /usr/local/redis/logs

注:如果上述路径配置出现错误,启动时会报错,如下:

Can't chdir to './usr/local/redis/data': No such file or directory

解决:
上述报错是,配置文件中,dir ./usr/local/redis/data路径最前面多了个“.”,删除即可。

4.创建集群

redis 5.x以上版本,可以通过redis-cli来创建集群,命令如下:

./src/redis-cli -a 123456 --cluster create  10.39.77.41:6379  10.39.77.42:6379  10.39.77.43:6379  10.39.77.44:6379  10.39.77.45:6379  10.39.77.46:6379  --cluster-replicas 1

若集群创建成功,则出现下图:

然后根据提示输入yes:几秒后,成功如下图。

redis3.0集群部署 redis5.0.8集群搭建_redis集群搭建教程_05


若安装失败,则出现如果长时间一直输出…,则为失败。

上述命令参数含义:

  • 123456 redis密码
  • 10.39.77.41:6379 10.39.77.42:6379 10.39.77.43:6379 10.39.77.44:6379 10.39.77.45:6379 10.39.77.46:6379 集群真实ip和端口号
  • -cluster-replicas 1 副本保留1份

五.客户端连接集群

在任意一台服务器,执行下述命令,都可以连接成功:

src/redis-cli -h 10.39.77.41 -p 6379 -a 123456 -c

连接成功后,执行下述几个命令,可以测试Redis集群是否创建成功:

# 查看集群主从节点信息
cluster nodes

# 查看集群状态
cluster info

# 查看存在的所有键值对
keys *

注:使用RDM客户端连接集群时,出现两个主节点无法连接现象:

通过redis-cli可以任意连接,但RDM客户端却出现两个节点连接不上,删除所有节点的usr/local/redis/data目录下的内容,将集群节点杀死,并将重新建立集群,然后重启了电脑,RDM就能连接了。

总结:

redis集群搭建过程中,保证与本文redis版本和centos版本一直的情况下,按照上述集群搭建步骤顺序,基本不会出现大问题,本文也保留了所有搭建过程中遇到的问题以及解决方案,希望可以帮你快速的搭建生产环境下的redis3主3从集群。