您当前的位置: 首页 >  redis

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Redis主从复制(一主两从三哨兵模式 演示示例)——图解版

小志的博客 发布时间:2021-08-17 23:14:22 ,浏览量:0

目录
    • 一、Redis主从复制的理解
    • 二、Redis主从复制(哨兵模式sentinel )是什么
    • 三、lz虚拟机配置说明
    • 四、Redis主从复制(每台服务器的redis配置文件配置步骤)
      • 1、配置master服务器(即IP为192.168.3.15的6379端口)的配置文件
      • 2、配置slave1服务器(即IP为192.168.3.16的6380端口)的配置文件
      • 3、配置slave2服务器(即IP为192.168.3.17的6381端口)的配置文件
    • 五、哨兵模式配置步骤
    • 六、Redis主从复制(哨兵模式sentinel 演示示例,包含各种宕机情况)
      • 1、分别启动3台服务器的redis服务端,并查看3台服务器的角色信息
      • 2、先配置成一主二从模式,并查看3台服务器的角色信息
      • 3、最后分别在三台机器上启动三个哨兵模式(sentinel),分别执行如下命令
      • 3、当master主服务器宕机后,查看slave1和slave2的角色是否升级为master

一、Redis主从复制的理解

1、Redis主从复制原理

  • slave启动成功连接到master后会发送一个sync命令。
  • Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步。
  • 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
  • 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步。
  • 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行)。

2、Redis主从复制的缺点

  • 复制延时:由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。
二、Redis主从复制(哨兵模式sentinel )是什么
  • 反客为主模式的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。
三、lz虚拟机配置说明

1、三台虚拟机配置说明:

ip端口说明192.168.3.15(master)6379redis主服务器 192.168.3.16(slave1)6380redis从服务器192.168.3.17(slave2)6381redis从服务器

2、关闭三台虚拟机的防火墙,保证三台虚拟机的ip和端口都能互相访问通 在这里插入图片描述

四、Redis主从复制(每台服务器的redis配置文件配置步骤) 1、配置master服务器(即IP为192.168.3.15的6379端口)的配置文件
  • 拷贝redis.conf文件为redis6379.conf,并编辑redis6379.conf文件。如下图: 在这里插入图片描述

  • 开启daemonize yes,如下图: 在这里插入图片描述

  • 修改pid文件名字为redis_6379.pid,如下图: 在这里插入图片描述

  • 指定IP和端口(6379),主机一定要把bind 127.0.0.1要改成0.0.0.0,从机不需要(一定要修改,否则主从连接失败),如下图:

    在这里插入图片描述 在这里插入图片描述

  • 修改log文件名字为6379.log,如下图: 在这里插入图片描述

  • 修改dump.rdb名字为dump6379.rdb,如下图: 在这里插入图片描述

2、配置slave1服务器(即IP为192.168.3.16的6380端口)的配置文件
  • 拷贝redis.conf文件为redis6380.conf,并编辑redis6380.conf文件。如下图: 在这里插入图片描述

  • 开启daemonize yes,如下图: 在这里插入图片描述

  • 修改pid文件名字为redis_6380.pid,如下图: 在这里插入图片描述

  • 指定IP和端口(6380),从主机不需要把bind 127.0.0.1要改成0.0.0.0,从机不需要,如下图:

    在这里插入图片描述 在这里插入图片描述

  • 修改log文件名字为6380.log,如下图: 在这里插入图片描述

  • 修改dump.rdb名字为dump6380.rdb,如下图: 在这里插入图片描述

3、配置slave2服务器(即IP为192.168.3.17的6381端口)的配置文件
  • 拷贝redis.conf文件为redis6381.conf,并编辑redis6381.conf文件。如下图: 在这里插入图片描述

  • 开启daemonize yes,如下图: 在这里插入图片描述

  • 修改pid文件名字为redis_6381.pid,如下图: 在这里插入图片描述

  • 指定IP和端口(6381),从主机不需要把bind 127.0.0.1要改成0.0.0.0,从机不需要,如下图:

    在这里插入图片描述 在这里插入图片描述

  • 修改log文件名字为6381.log,如下图: 在这里插入图片描述

  • 修改dump.rdb名字为dump6381.rdb,如下图: 在这里插入图片描述

五、哨兵模式配置步骤
  • 在master服务器(即IP为192.168.3.15的6379端口)中新建sentinel6369.conf配置文件,内容如下
    #哨兵模式单独端口
    port 26379
    # 默认:保护模式开启
    #如果是自己新建的sentinel.conf文件一定要配置成no,不然client连不上sentinel
    protected-mode no
    # 是否以后台进程运行
    daemonize yes
    
    #配置哨兵,监控master主服务器
    sentinel monitor mymaster 192.168.3.15 6379 2
    

在这里插入图片描述

  • 在slave1服务器(即IP为192.168.3.16的6380端口)中新建sentinel6380.conf配置文件,内容如下
    #哨兵模式单独端口
    port 26380
    # 默认:保护模式开启
    # 如果是自己新建的sentinel.conf文件一定要配置成no,不然client连不上sentinel
    protected-mode no
    # 是否以后台进程运行
    daemonize yes
    
    #配置哨兵,监控master主服务器
    sentinel monitor mymaster 192.168.3.15 6379 2
    

在这里插入图片描述

  • 在slave2服务器(即IP为192.168.3.17的6381端口)中新建sentinel26381.conf配置文件,内容如下
    #哨兵模式单独端口
    port 26381
    # 默认:保护模式开启
    # 如果是自己新建的sentinel.conf文件一定要配置成no,不然client连不上sentinel
    protected-mode no
    # 是否以后台进程运行
    daemonize yes
    
    #配置哨兵,监控master主服务器
    sentinel monitor mymaster 192.168.3.15 6379 2
    
    在这里插入图片描述
六、Redis主从复制(哨兵模式sentinel 演示示例,包含各种宕机情况)

因为演示,lz没有把slaveof 命令配置进redis配置文件中

1、分别启动3台服务器的redis服务端,并查看3台服务器的角色信息
  • 启动6379端口的master服务器并测试是否连接成功,如下图:

    在这里插入图片描述

  • 启动6380端口的slave1服务器并测试是否连接成功,如下图: 在这里插入图片描述

  • 启动6381端口的slave2服务器并测试是否连接成功,如下图: 在这里插入图片描述

  • 输入info replication命令,查看3台服务器的角色信息,由下图可知,3台服务器均为master服务器,如下图: 在这里插入图片描述

2、先配置成一主二从模式,并查看3台服务器的角色信息
  • 由下图可知,slave1和slave2服务器的角色都为slave, 在这里插入图片描述
  • 由下图可知,master服务器的角色都为master,并且挂2个从服务器。 在这里插入图片描述
3、最后分别在三台机器上启动三个哨兵模式(sentinel),分别执行如下命令

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

3、当master主服务器宕机后,查看slave1和slave2的角色是否升级为master
  • 由下图可知,当master主服务器宕机后,哨兵模式(sentinel)会根据投票数自动将从库转换为主库。 在这里插入图片描述
关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0414s