您当前的位置: 首页 >  redis

小志的博客

暂无认证

  • 5浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Redis主从复制(一主二从模式 演示示例)——图解版

小志的博客 发布时间:2021-08-15 21:01:00 ,浏览量:5

目录
    • 一、Redis主从复制(一主二从的理解)
    • 二、Redis主从复制配置步骤概述
    • 三、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主从复制(一主二从演示示例,包含各种宕机情况)
      • 1、分别启动3台服务器的redis服务端,并查看3台服务器的角色信息
      • 2、slave1和slave2分别执行slaveof +master服务器ip+端口命令,查看slave1和slave2角色信息
      • 3、master服务器添加1条数据,然后查看slave1和slave2是否能获取到添加的数据。
      • 4、slave1和slave2服务器是否可以获取到在执行slaveof命令之前master服务器的数据。
      • 5、master服务器和slave1、slave2服务器是否都可以添加数据
      • 6、master服务器宕机后,slave1和slave2服务器角色是否能升级为master
      • 7、master服务器宕机恢复后,slave1和slave2服务器是否还可以获取到master服务器的数据
      • 8、slave1服务器宕机恢复后,slave1服务器的角色是否升级为master
      • 9、slave1服务器宕机恢复后,slave1服务器是否可以获取到宕机时间段内master服务器新添加的数据
      • 10、slave1服务器宕机恢复后,slave1服务器再次手动执行slaveof命令,是否可以获取到宕机时间段内master服务器新添加的数据
    • 五、Redis主从复制(一主二从)总论

一、Redis主从复制(一主二从的理解)

在这里插入图片描述

  • 由上图结构可知,一主二从指一个master服务器同时挂2个salve服务器。当master宕机后,2个slave服务器原地待命,角色还是slave,不会升级为master。
二、Redis主从复制配置步骤概述 序号配置作用1配从(库)不配主(库)配置从服务器不配置主服务器2从库配置,使用 slaveof 主库IP 主库端口 命令slaveof命令再每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件。3info replication命令查看主/从复制信息4拷贝redis.conf文件表示指定配置文件启动redis服务5开启daemonize yes表示是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。6指定pid文件名字表示pid文件的路径7指定IP和端口表示指定服务器IP和端口如果是主机的话bind要改成0.0.0.0,从机不需要(主机一定要修改,否则主从连接失败)8指定log文件名字表示日志文件路径9指定dump.rdb名字表示数据库文件路径 三、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,如下图: 在这里插入图片描述

五、Redis主从复制(一主二从演示示例,包含各种宕机情况)

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

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

    在这里插入图片描述

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

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

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

2、slave1和slave2分别执行slaveof +master服务器ip+端口命令,查看slave1和slave2角色信息
  • 由下图可知,slave1和slave2服务器的角色都为slave,

    在这里插入图片描述

3、master服务器添加1条数据,然后查看slave1和slave2是否能获取到添加的数据。
  • 由下图可知,成功获取到master服务器中键为k4的数据。

    在这里插入图片描述

4、slave1和slave2服务器是否可以获取到在执行slaveof命令之前master服务器的数据。
  • 对于slave1和slave2服务器再执行slaveof命令之前,master服务器中键为k1、k2、k3的数据,再slave1和slave2服务器是否能成功获取到数据。由下图可知,slave1和slave2服务器可以获取到在执行slaveof命令之前master服务器的数据。 在这里插入图片描述
5、master服务器和slave1、slave2服务器是否都可以添加数据
  • 由下图可知,master服务器添加数据成功而slave1和slave2服务器添加数据失败,因为只读。

    在这里插入图片描述

6、master服务器宕机后,slave1和slave2服务器角色是否能升级为master
  • 由下图可知,master服务器宕机后,slave1和slave2服务器角色还是slave,并没有升级为master角色。 在这里插入图片描述
7、master服务器宕机恢复后,slave1和slave2服务器是否还可以获取到master服务器的数据
  • 由下图可知,master服务器宕机恢复后,slave1和slave2服务器可以获取到master服务器的数据。 在这里插入图片描述
8、slave1服务器宕机恢复后,slave1服务器的角色是否升级为master
  • 由下图可知,slave1服务器宕机恢复后,slave1服务器的角色升级为master,因为slaveof命令没有配置进redis配置文件中,每次与master断开都需要手动执行slaveof命令。在这里插入图片描述
9、slave1服务器宕机恢复后,slave1服务器是否可以获取到宕机时间段内master服务器新添加的数据
  • 由下图可知,slave1服务器宕机恢复后,slave1服务器无法获取宕机时间段内master服务器新添加的数据。 在这里插入图片描述
10、slave1服务器宕机恢复后,slave1服务器再次手动执行slaveof命令,是否可以获取到宕机时间段内master服务器新添加的数据
  • 由下图可知,slave1服务器宕机恢复后,slave1服务器再次手动执行slaveof命令,slave1服务器可以获取宕机时间段内master服务器新添加的数据。 在这里插入图片描述
五、Redis主从复制(一主二从)总论
  • 由示例中第3步和第4步可知,slave第一次复制是全部复制,之后是增量复制。
关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.2398s