Linux下Centos7中的redis的集群模式:主从模式、哨兵模式、去中心化集群搭建

本文详细介绍了在Linux的Centos7环境下,如何搭建redis的主从模式、哨兵模式以及去中心化集群。在主从模式中,重点讲述了配置主从节点、故障转移的验证。哨兵模式则强调了其自动故障转移、配置提供等功能。最后,去中心化集群的搭建解决了单点问题和持久化文件集中问题,详细步骤包括配置多个主从节点和调整集群参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis的主从模式、哨兵模式、去中心化集群搭建

1.1 主从模式

  1. 创建一个目录 master-slave
[root@localhost redis-6.2.1]# mkdir master-slave
  1. 将redis.conf配置文件复制三份并给其重命名到master-slave中
# ①复制
[root@localhost redis-6.2.1]# cp redis.conf master-slave/
#重命名
[root@localhost master-slave]# mv redis.conf redis7001.conf
# ②复制
[root@localhost redis-6.2.1]# cp redis.conf master-slave/
#重命名
[root@localhost master-slave]# mv redis.conf redis7002.conf
# ③复制
[root@localhost redis-6.2.1]# cp redis.conf master-slave/
#重命名
[root@localhost master-slave]# mv redis.conf redis7003.conf

​ 复制三份

  1. cd到master-slave
[root@localhost redis-6.2.1]# cd master-slave/

​ ls查看文件
在这里插入图片描述

  1. 修改端口号和rdb持久化文件的名称,并将aof关闭

    redis7001.rdb

    (1)修改配置端口号
    在这里插入图片描述

​ (2)修改rdb持久化文件名称
在这里插入图片描述

​ (3)将aof关闭
在这里插入图片描述

redis7002.conf和redis7003.rdb与redis7001.rdb修改内容相同

  1. 启动三个的redis服务
    在这里插入图片描述

启动redis客户端
在这里插入图片描述

查看三个节点的信息(三个都为主)
在这里插入图片描述

使用slaveof 127.0.0.1 7001 将7002和7003绑定到7001上,让7002和7003作为7001的从节点
在这里插入图片描述

关系如图
在这里插入图片描述

验证:
在这里插入图片描述

思考:

  1. 主节点挂掉,从主节点是上位还是等待主节点的归来。

  2. 如果这时,有一个新得节点加入到主从上了,新节点是否可以把之前得数据获取。

(自己实验)

2.哨兵模式

  1. 什么是哨兵模式?

    在Redis 2.8版本开始引入。哨兵的核心功能是主节点的自动故障转移。

    通俗来讲哨兵模式的出现是就是为了解决我们主从复制模式中需要我们人为操作的东西变为自动版,并且它比人为要更及时

  2. 哨兵的功能

    监控(Monitoring):哨兵会不断地检查主节点和从节点是否运作正常。

    自动故障转移(Automatic Failover):当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点。

    配置提供者(Configuration Provider):客户端在初始化时,通过连接哨兵来获得当前Redis服务的主节点地址。

    通知(Notification):哨兵可以将故障转移的结果发送给客户端。

    其中,监控和自动故障转移功能,使得哨兵可以及时发现主节点故障并完成转移;而配置提供者和通知功能,则需要在与客户端的交互中才能体现。

  3. 代码实现

    (1)修改sentinel.conf的配置

[root@localhost redis-6.2.1]# vim sentinel.conf

127.0.0.1 标识的是redis主节点的ip

6379 标识主节点的端口号,这里改为你设置的端口号

2 表示有多少个哨兵选取redis从节点后,该从节点可以当选为主节点。
在这里插入图片描述

(2)启动哨兵

[root@localhost redis-6.2.1]# redis-sentinel sentinel.conf

在这里插入图片描述

​ (3)启动7001、7002、7003的redis服务
在这里插入图片描述

​ (4)先将主节点挂掉,等三十秒之后,查看选举的主节点是7003
在这里插入图片描述

3.去中心化集群

哨兵模式的缺点:

  1. 没有解决单节点的问题。

  2. 持久化文件始终在一个服务器上

实现去中心化要求

​ 配置三主各有一个从

实现:

  1. 创建一个目录three-master-slave
[root@localhost redis-6.2.1]# mkdir three-master-slave

​ 将redis.conf复制六份到three-master-slave文件中,并cd进去

[root@localhost redis-6.2.1]# cd three-master-slave/

在这里插入图片描述

  1. 修改相关配置
[root@localhost redis-6.2.1]# vim redis8001.conf       

(1)修改端口号
在这里插入图片描述
(2)daemonize改为yes

在这里插入图片描述

(3)appendonly改为yes
在这里插入图片描述

(4)开启集群
在这里插入图片描述
(5)集群的配置文件,该文件自动生成
在这里插入图片描述
(6)集群的超时时间
在这里插入图片描述

8002、8003、8004、8005、8006和8001的配置相同

  1. 启动redis8001~6的reids服务
    在这里插入图片描述

  2. 当你在为主节点分配槽以及分配从节点时出现了以下错误
    在这里插入图片描述

那么就是你的配置文件中设置了密码,那么需要将配置文件中密码命令注释了

  1. 结束redis8001~6的redis服务进程
    在这里插入图片描述

  2. 再次开启redis8001~6服务
    在这里插入图片描述

  3. 为主节点分配槽以及分配从节点

[root@localhost three-master-slave]# redis-cli --cluster create --cluster-replicas 1 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 127.0.0.1:8006

在这里插入图片描述

记得要yes

必须保证aof开启,保证redis中没有数据。

客户端访问:

redis-cli -c -h 127.0.0.1 -p 8001
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值