前言:
本文将介绍Redis5.0三主三从集群搭建以及集群配置。
一.资源配置(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
若出现上述报错,则执行命令:
make MALLOC=libc
编译成功,如下图:
四.安装
在所有服务器上,,执行安装命令:
cd redis-5.0.8
make install
安装成功后,redis-5.0.8的src目录下,会出现redis-server和redis-cli:
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:几秒后,成功如下图。
若安装失败,则出现如果长时间一直输出…,则为失败。
上述命令参数含义:
- 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从集群。