Redis主从复制,集群搭建【Windows】,主从复制原理

一、什么是主从复制

  • 主从复制是将一台Redis服务器的数据复制到其他Redis服务器,前者叫master/leader主节点,后者成为从节点slave/follower,数据库的复制是单项的,只能由主–>从,master以写为主,slave以读为主,利用主从复制实现读写分离,最低配的主从复制也需要一主二从。
  • 主从复制中,从节点只能进行读操作,如果在从节点执行写命令则会报错,主节点可以执行读写操作,但我们网网规定主节点只能进行写操作,这样也是符合了读写分离;默认情况下,每个Redis服务器都为主节点,即master。

二、主从复制的作用

  1. 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
  2. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速故障恢复,实际上是一种服务的冗余
  3. 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,从节点提供读,即写redis数据库时app连接主节点,读时连接从节点,分担服务器压力,尤其是写少读多场景下,通过多个从节点分担读的流量,可以大大提高redis服务器并发量
  4. 高可用基石:主从复制还是哨兵和集群能够实施的基础,因此说主从复制是redis高可用的基础

三、Redis集群搭建

        使用单台电脑配置主从复制,一主二从,每个redis默认都为主节点,可以用info replication查看当前redis库信息,在配置的时候只需配置从机即可,主机不必理会

1、修改配置文件

  • 复制出多份配置文件,并修改配置(修改端口、log文件名、dump.rdb)在这里插入图片描述
  • 修改端口号,为了保留原来的配置文件,我将红框文件复制出来了三份,集群用复制出来的三个配置文件做, 打开每个配置文件,将端口号修改,每个配置文件对应一个端口号,我就用6379、6380、6381了:
    在这里插入图片描述
  • 修改日志文件名:
    在这里插入图片描述
  • 修改dump.rdb,防止三个redis-server生成的持久化文件重名,该文件是redis的RDB方式持久化生成的数据文件:
    在这里插入图片描述

2、启动Redis server

  • 打开命令行,cd切到redis安装目录下,然后输入命令:
# redis-server.exe 不同的配置文件名.conf
redis-server.exe redis6380.conf

        回车即启动成功,不同端口的redis带上不同配置文件即可。需要注意的是每个redis都要打开一个命令窗口。没有banner图也并非是失败,正常情况。我的有的也没有显示启动图标,呐,你看,这也是启动成功了:
在这里插入图片描述

3、命令方式配置主从复制

  • 首先需要将三个Redis服务的客户端启动并连接到服务器
            打开一个命令窗口,切换到redis根目录,输入命令redis-cli.exe -p 6380,-p属性为指定启动的端口号,这里我是用6379作为主机,80跟81作为从机,每个redis-cli都要打开一个命令窗口,特别强调这点是因为我女朋友想要在一个命令窗口操作三个redis-cli…如下为客户端启动了,可以输入ping命令,执行如果返回pong则为成功连接到服务端。
    在这里插入图片描述
  • 输入命令配置主从节点
            在文章最开始提到说默认情况下,每台redis服务都为主节点,所以在配置主从复制时,不须配置主节点,只需要将从节点配置好即可,在从机的客户端输入命令,回车即可:
# slaveof  主机ip  主机port
slaveof 127.0.0.1 6379

如果返回OK,则配置成功,此时可以输入命令:

info replication  # 查看当前库信息

在这里插入图片描述

4、配置文件方式配置主从复制

  1. 使用命令是暂时的,关机重启,配置即失效,配置文件是永久的在这里插入图片描述

四、主从服务器宕机问题

1、主机宕机

  1. 当主机宕机后,从机是否还可正常运行?
        如果采用的是命令的配置方式,那么当主机宕机,从机立马恢复这个默认主节点,即恢复成主机;如果采用的是配置文件的方式配置的主从复制,当主机宕机,从机依旧连接着主机,只是整个集群只有读操作,没有写操作,此时从机的数据不再会有更新,等采用了哨兵模式,该问题将会被解决
  2. 主机宕机后又重启了,主从复制的关系是否能恢复?
        如果是命令配置的,自然不会恢复,如果是配置文件的方式配置,当主机宕机,从机依旧是连接主机的状态,一旦主机恢复,从机立马感应到,依旧可以从主机中继续获取数据

2、从机宕机

从机宕机后,对主机毫无影响,如果是命令配置的,那么宕机之后,重新开机需要重新配置,如果是配置文件配置的,那么宕机重启后,立马连回主机,执行全量复制,将主机中的数据一并拿过来

五、主从复制原理(全量/增量复制)

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

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值