Linux(CentOS7)下搭建redis集群,多台机器一主二从

1. 环境准备

Linux系统:CentOS7-2009

三台主机

192.168.64.70	端口7000-7002
192.168.64.71	端口7000-7002
192.168.64.72	端口7000-7002

redis:redis-5.0.13

redis下载地址:http://download.redis.io/releases/
在这里插入图片描述
下载好后上传至每一台Linux服务器,作者是放在 /usr/local/ 这个路径

2. redis集群准备配置

上传好redis压缩包后就可以开始搭建了,执行以下操作

# 进入redis上传目录
cd /usr/local/	
# 解压安装包
tar -zxvf redis-5.0.13.tar.gz
# 重命名redis目录
mv redis-5.0.13 redis
# 进入redis目录
cd redis/
# 编译(这里需要安装gcc,由于CentOs7自带gcc,因此可以直接编译)
make
# 安装(同样需要安装gcc,由于CentOs7自带gcc,因此可以直接编译)
make install

编译成功界面如下:
在这里插入图片描述
安装成功界面如下:
在这里插入图片描述
如果没有出现以上界面说明编译安装失败,需要检查一下gcc

接下执行一下命令

# 创建cluster目录
mkdir cluster
# 进入cluster目录
cd cluster/
# 创建7000,7001,7002目录
mkdir 7000 7001 7002
# 返回上一级目录
cd ../
# 分别把该目录下的redis.conf配置文件复制到7000-7002目录下
cp redis.conf cluster/7000
cp redis.conf cluster/7001
cp redis.conf cluster/7002

编辑配置文件redis.conf

  1. 注释本地绑定IP地址在这里插入图片描述
  2. 关闭保护模式

在这里插入图片描述

  1. 修改端口号
    在这里插入图片描述

  2. 启动后台启动

在这里插入图片描述

  1. 修改pid文件

在这里插入图片描述

  1. 修改持久化文件路径

在这里插入图片描述

  1. 设定内存优化策略

在这里插入图片描述

  1. 关闭AOF模式

在这里插入图片描述

  1. 开启集群配置

在这里插入图片描述

  1. 开启集群配置文件

在这里插入图片描述

  1. 修改集群超时时间

在这里插入图片描述
编辑好一个配置文件后直接把该文件复制到其他文件夹

cd /usr/local/redis
cp cluster/7000/redis.conf cluster/7001
cp cluster/7000/redis.conf cluster/7002

并且把上述配置含有7000部分分别改为7001和7002

这样一台机器的redis集群环境准备完毕,由于另外机器配置一样。所以只需把第一台机器已配置好的配置文件复制过去
复制命令如下

# 复制192.168.64.70机器的配置文件到192.168.64.71,192.168.64.72机器
scp -r /usr/local/redis/cluster root@192.168.64.71:/usr/local/redis
# -r递归复制目录 复制的时候会弹出输入密码,输入即可
scp -r /usr/local/redis/cluster root@192.168.64.72:/usr/local/redis

复制结果如下:
在这里插入图片描述
启动redis集群:

  1. 在redis集群安装目录下创建启动脚本 ,命令如下
# 进入redis集群安装目录
cd /usr/local/redis/cluster/
# 创建启动脚本  
vim start.sh
# 添加以下命令后保存
#!/bin/sh
redis-server 7000/redis.conf &
redis-server 7001/redis.conf &
redis-server 7002/redis.conf &

在这里插入图片描述

  1. 再创建关闭脚本
# 创建关闭脚本
vim shutdown.sh
# 添加以下命令后保存
#!/bin/sh
redis-cli -p 7000 shutdown &
redis-cli -p 7001 shutdown &
redis-cli -p 7002 shutdown &

在这里插入图片描述
3. 启动redis集群

# 启动脚本
sh start.sh
# 查看运行状态
ps -ef |grep redis

在这里插入图片描述
同样地我们编辑好一台机,直接把脚本复制到其他两台机

scp /usr/local/redis/cluster/start.sh root@192.168.64.71:/usr/local/redis/cluster
scp /usr/local/redis/cluster/start.sh root@192.168.64.72:/usr/local/redis/cluster

scp /usr/local/redis/cluster/shutdown.sh root@192.168.64.71:/usr/local/redis/cluster
scp /usr/local/redis/cluster/shutdown.sh root@192.168.64.72:/usr/local/redis/cluster

3. redis配置集群主从节点

上面配置好后此时就可以开始配置主从节点了
网上资料常有一下命令创建集群

redis-cli --cluster create --cluster-replicas 1 192.168.64.70:7000 192.168.64.71:7000 192.168.64.72:7000 192.168.64.70:7001 192.168.64.71:7001 192.168.64.72:7001 192.168.64.70:7002 192.168.64.71:7002 192.168.64.72:7002

此命令通用格式如下:

redis-cli --cluster create --cluster-replicas 每个主节点的从节点数量 机器ip+端口号(多台机器用逗号隔开)

这样系统就根据机器数量随机分配主节点,尽可能使每个主节点的从节点数量达到输入命令的数量

但是如果我们要手动输入命令指定主从关系了。
如何指定,按照redis集群主从节点分片运行原理,一个主节点宕机则整个分片崩溃,但是集群模式下剩余节点可以通过选举将该节点的一个从节点升为主节点;而我们有三台机器,为了保证某一台机器宕机集群还能用主从节点分配思路如下:

master1						slave1_1				slave1_2
192.168.64.70:7000 			192.168.64.71:7001		192.168.64.72:7002
master2						slave2_1				slave2_2
192.168.64.71:7000 			192.168.64.72:7001		192.168.64.70:7002
master3						slave3_1				slave3_2
192.168.64.72:7000 			192.168.64.70:7001		192.168.64.71:7002

执行指定命令思路如下

  1. 先创建具有三个主节点的集群,没有从节点
  2. 使用添加节点的命令添加从节点,这样就可以在添加时指定它们的主节点,建立主从对应关系

具体命令如下

  • 使用以下命令创建主节点:
redis-cli --cluster create --cluster-replicas 0 192.168.64.70:7000 192.168.64.71:7000 192.168.64.72:7000
  • 增加从节点:
redis-cli --cluster add-node 192.168.64.71:7001 192.168.64.70:7000 --cluster-slave --cluster-master-id *******

其中:

  • slave 表示要添加从节点
  • cluster-master-id 要添加到哪一个主节点,id是*****
  • 192.168.64.71:7001 要添加的从节点
  • 192.168.64.70:7000 原集群中任意节点

cluster-master-id可以通过一下命令查看:

# 进入任意一个redis节点
redis-cli -p 7000
# 查看集群信息
cluster nodes

在这里插入图片描述
所以,最终创建主从节点完整命令如下(注意以下命令cluster-master-id是我的机器,要根据上面查询cluster-master-id命令查询你们机器的实际cluster-master-id):

# 创建具有三个主节点的集群,没有从节点
redis-cli --cluster create --cluster-replicas 0 192.168.64.70:7000 192.168.64.71:7000 192.168.64.72:7000 

# 给主节点192.168.64.70:7000增加从节点
redis-cli --cluster add-node 192.168.64.71:7001 192.168.64.70:7000 --cluster-slave --cluster-master-id 8e45923f9c05948ca54cb0c70724a62805fd4585
redis-cli --cluster add-node 192.168.64.72:7002 192.168.64.70:7000 --cluster-slave --cluster-master-id 8e45923f9c05948ca54cb0c70724a62805fd4585

# 给主节点192.168.64.71:7000增加从节点
redis-cli --cluster add-node 192.168.64.72:7001 192.168.64.71:7000 --cluster-slave --cluster-master-id eee597ad3a6a4c9b6d360be4dc4e9c98460d6f4f
redis-cli --cluster add-node 192.168.64.70:7002 192.168.64.71:7000 --cluster-slave --cluster-master-id eee597ad3a6a4c9b6d360be4dc4e9c98460d6f4f

# 给主节点192.168.64.72:7000增加从节点
redis-cli --cluster add-node 192.168.64.70:7001 192.168.64.72:7000 --cluster-slave --cluster-master-id c1817049021a287cd56a058b75c8e754a7c4d449
redis-cli --cluster add-node 192.168.64.71:7002 192.168.64.72:7000 --cluster-slave --cluster-master-id c1817049021a287cd56a058b75c8e754a7c4d449
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值