Redis6之主从复制

主从复制

        是指将一台Redis服务器的数据,复制到其他Redis服务器。前者称为主节点,后者称为从节点;数据复制是单向的,只能由主节点复制到从节点;主节点以写为主,从节点以读为主。

特点

        1.使用异步复制,每次接收到写命令之后,先在内部写入数据,然后异步发送给从节点服务器

        2.主从复制不阻塞主节点服务器。多个从服务器在进行初始同步时,主服务器仍然可以处理外界请求

        3.主从复制不阻塞从节点服务器。当主节点服务器进行初始同步时,从节点服务器返回的是以前旧版本的数据

        4.主从复制提高了redis服务的扩展性

        5.使用主从复制可以为主节点服务器免除把数据写入磁盘的消耗,可以配置让主节点服务器不再将数据持久化到磁盘,而是通过连接让一个配置的从节点类型的Redis服务器及时将相关数据持久化到磁盘

作用

        1.数据冗余:实现数据备份

        2.故障恢复:当主节点出现问题,可以由从节点提供服务,实现快速故障恢复

        3.负载均衡:在主从复制的基础上,配合读写分离;主节点复制写,从节点复制读,分担服务器负载

        4.集群的基石:主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基

读写分离模式

        读操作:主节点、从节点都可以接收

        写操作:写入主节点,再将写操作同步到从节点

主从复制配置

首先安装3个redis(80、81、82),并启动(刚开始默认都是主节点)

进行配置从机,一主(80)二从(81,82),在配置文件中配置

replication 主机pi 主机端口  #配置主结点
masterauth password #主机的密码(没有密码不用写)

注意:真正的主从结点配置应该在配置文件中配置才是永久的,使用命令行配置重启数据库它就不见了。

主从复制原理

在2.8版本之前只有全量复制,而2.8版本后有全量和增量复制

全量复制

        当我们启动多个 Redis 实例的时候,它们相互之间就可以通过 replicaof(Redis 5.0 之前使用 slaveof)命令形成主库和从库的关系,之后会按照三个阶段完成数据的第一次同步

阶段:

        1、主从库间建立连接、协商同步的过程(主要是为全量复制做准备)

        2、主库将所有数据同步给从库(从库收到数据后,在本地完成数据加载。这个过程依赖于内存快照生成的 RDB 文件)

        3、主库会把第二阶段执行过程中新收到的写命令,再发送给从库(当主库完成 RDB 文件发送后,就会把此时 replication buffer 中的修改操作发给从库,从库再重新执行这些操作。这样一来,主从库就实现同步)

增量复制

        如果主从库在命令传播时出现了网络闪断,那么,从库就会和主库重新进行一次全量复制,开销非常大。从 Redis 2.8 开始,网络断了之后,主从库会采用增量复制的方式继续同步

 主从复制过程
  • 从服务器连接主服务器,发送PSYNC命令。
  • 当主服务器接收到PSYNC命令后,开始执行BGSAVE命令生成RDB快照文件并使用缓冲区记录此后执行的所有写命令。
  • 当主服务器BGSAVE执行完后,向所有从服务器发送RDB快照文件,并在发送期间继续记录被执行的写命令。
  • 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照至内存。
  • 主服务器快照发送完毕后,开始向从服务器发送缓冲区中的写命令。
  • 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令。
  • 后期同步会先发送自己slave_repl_offset位置,只同步新增加的数据,不再全量同步

缺点

        1.延迟:因为主节点需要广播数据给从节点,所以会有一定的网络传输延迟

        2.容灾能力:如果所有从节点挂掉,那么这个集群的容灾能力就很差了

        3.一致性问题:由于Redis的异步复制机制,当主节点数据有修改而还未同步到从节点时,此时主节点宕机,数据可能会出现不一致的情况

总之,Redis主从复制是一种非常流行的数据备份、读写分离和高可用方案,但也需要仔细考虑其适用场景和可能存在的缺陷

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值