Redis】Redis主从复制(二)————主从结构/流程

回顾

主从结构中 redis 从节点上只能读数据,不能写入数据,主节点写入的数据,在从节点都能查看并获取到
在这里插入图片描述在这里插入图片描述在这里插入图片描述

slaveof 命令

断开主从复制关系

  • 在当前从节点的 redis 客户端中使用 slaveof no one 可以断开现有的主从复制关系,并且自身成为新的主节点
    在这里插入图片描述
  • 这里从节点断开复制后并不会抛弃原有数据,只是无法再获取主节点上的数据变化
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

切换主从复制关系

  • 通过 slaveof 命令还可以实现切主操作,将当前从节点的数据源切换到另⼀个主节点,并且切换后会先删除当前节点的所有数据,再复制新的主节点数据。执行 slaveof 新主节点IP 新主节点端口 命令即可。

  • 例如将端口号为 6381 从节点的 “主”,换成 端口号为 6380,如下
    在这里插入图片描述

  • 现在的情况就是6379是6380的主节点,6380是6381的主节点

  • 而且此处的修改是临时的,如果重启 redis 服务器,就会按照最初再配置文件中设置的内容来建立主从关系

只读

要设置Redis的主从复制为只读模式,可以通过修改从节点的配置文件来实现。

  • 首先,在主节点的配置文件redis.conf中,设置slave-read-only参数为yes:

    slave-read-only yes
    
  • 然后,在从节点的配置文件redis.conf中,设置slave-read-only参数为yes,并且设置masterauth参数来保护主节点的写操作:

    slave-read-only yes
    masterauth <master_password>
    
  • 其中,<master_password>是主节点的密码。

  • 保存并关闭配置文件后,重新启动从节点即可。从节点在只读模式下,将无法接受任何写入操作,只能进行读取操作。如果有写入操作,从节点将抛出错误。

  • 确保从节点处于只读模式后,可以通过在从节点上执行redis-cli info命令来验证。在输出的信息中查找role:slave,并确保master_replidmaster_repl_offset等参数被正确地设置为主节点的信息。

  • 由于复制只能从主节点到从节 点,对于从节点的任何修改主节点都⽆法感知,修改从节点会造成主从数据不⼀致。所以建议线上不要修改从节点的只读模式。

网络延迟问题

Redis主从复制中的网络延迟问题是指主节点与从节点之间进行数据同步时所出现的网络延迟现象。

  • 在Redis主从复制中,主节点将自己的写操作记录在内存中的AOF日志或者RDB文件中,并且将这些写操作发送给从节点,从节点则通过执行这些写操作来保持与主节点的数据同步。

  • 然而,由于网络的不稳定性或者网络带宽的限制,主节点发送给从节点的数据可能会发生延迟。这可能导致从节点在执行主节点的写操作之前会有一段时间的数据不一致。

  • 例如,如果主节点发送的写操作在发送之前就出现了网络延迟,从节点可能会在这段延迟期间没有接收到新的写操作,并且从节点上的数据可能会落后于主节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值