1. 准备服务器
集群服务器需能互相通信,执行ping ip地址,检查服务器之间是否能够相互通信,这里使用三台服务器作为集群例子
2. 安装redis
redis安装包下载链接,推荐使用redis5的安装包,redis6需要安装gcc5,如果不是必须按照redis6则不推荐(gcc5安装太麻烦了,需要的话我回头整合一篇gcc5安装的文章)
上传redis安装包到需要使用的安装目录下,这里使用的是/usr/local/src
然后执行解压
tar -zxvf redis-5.0.0.tar.gz
此时执行cd命令切换到解压目录
cd /usr/local/src/redis-5.0.0
创建配置文件存放目录(6379主节点,6380从节点)
mkdir 6379
mkdir 6380
vim ./6379/redis.conf
bind 127.0.0.1
port 6379
daemonize yes
protected-mode yes
pidfile /usr/local/src/redis5.0.0/6379/redis-6379.pid
logfile /usr/local/src/redis5.0.0/6379/redis-6379.log
dir /usr/local/src/redis5.0.0/6379
appendonly yes
appendfilename "appendonly-6379.aof"
cluster-enabled yes
cluster-config-file nodes-6379.conf
masterauth "admin"
requirepass "admin"
照着6379的弄6380的,sed -i 's/6379/6380/g' redis.conf
vim ./6380/redis.conf
执行make编译
cd /usr/local/src/redis-5.0.0
make
一台服务器就完事了,另外两台一模一样的弄就行,配置好编译。
全部编译好之后,编写启动脚本 :
cd /usr/local/src/redis-5.0.0
vi redis-start.sh
src/redis-server 6379/redis.conf
src/redis-server 6380/redis.conf
每台服务器分别执行启动脚本
sh redis-start.sh
三台机器都启动后,执行以下命令,显示两个节点信息则成功
ps -ef |grep redis
3. 配置集群
三台服务器,启动6个实例,形成三主三从,其中存储相同数据的主从节点不能落在同一台机器上上,防止部署redis的虚拟机宕机从而造成主从节点全部失效,所以为了使用主从节点不落在同一台机器上,使用如下命令使每台ip+port交叉
/usr/local/src/redis-5.0.0/src/redis-cli --cluster create --cluster-replicas 1 192.168.227.91:6379 192.168.227.92:6380 192.168.227.92:6379 192.168.227.93:6380 192.168.227.93:6379 192.168.227.91:6380
# 根据提示输入yes
执行命令后出现如下图所示表示redis集群创建成功
如果报错Could not connect to Redis at 192.168.227.91:6379: No route to host,需要执行systemctl stop firewalld关闭防火墙.
5. 测试集群
执行/usr/local/src/redis-5.0.0/src/redis-cli -p 7001后进入redis,然后执行以下命令查看集群健康状态
cluster info 查看集群健康状态
cluster nodes 查看节点健康状态