Redis 学习笔记(四)- 复制

本篇文章来讲讲 Redis 的复制。在分布式系统中为乐解决单点问题,通常会吧数据复制多个副本部署到多个机器上,满足故障恢复和负载均衡等需求。Redis也是如此。

复制使用

  • 建立复制

    • 配置复制的方式有三种
      • 在从节点的配置文件中加入slaveof {masterHost} {masterPort} 随Redis启动生效
      • redis-server 启动命令后后加入 --slaveof {masterHost} {masterPost} 生效
      • 直接在从节点使用命令:slaveof {masterHost} {masterPort}
    • 可以通过info replication查看主节点、从节点的复制状态信息
  • 断开复制
    从节点执行slaveof no one命令断开和主节点的复制关系。断开复制关系后,从节点的数据是保留的。

  • 拾遗

    • 对于比较重要的节点,主节点可以通过设置requirepass参数进行密码验证,这时所有客户端访问必须使用auth命令进行校验。
    • 默认情况下,从节点是只读模式,谨慎修改。
    • Redis 可以通过repl-disable-tcp-nodelay参数控制是否关闭TCP_NODELAY(默认关闭)。关闭时,主节点每个命令数据都会及时同步;开启时,主节点会合并较小的TCP包,同一同步。

拓扑结构

  • 一主一从结构
  • 一主多从结构
  • 树状主从结构

复制原理

  • 复制过程
    主从节点建立复制流程图
    在这里插入图片描述
  • 数据同步
    • 全量复制:一般用于初次复制场景
    • 部分复制:一般用在主从复制中因网络闪断等原因造成的数据丢失

常见问题

  • 读写分离
    • 复制数据延迟
    • 读到过期数据
    • 从节点故障
  • 主从配置不一致
  • 规避全量复制

猜你喜欢

转载自blog.csdn.net/melody_lql/article/details/86625845