画布 1
Redis 同步
  1 保存主节点信息
    从配置文件中读取到 master 时
    启动命令参数时带有 master 参数时
    操作员手动 set config 里包含 master 时
  2 主从建立 socket 连接
    不断尝试，直至成功或者换主放弃为止
  3 ping master（health check）
    检验 socket 连通性
    验证master 当前是否可以响应命令
  4 权限验证
    可选，可以防止 redis 被人拖数据
  5 同步数据集
    全量复制
      1 传 rdb 文件，aof 文件不传，因为 aof 文件的reload 效率非常低。
        主从复制，从节点重建数据的过程比较繁复，blocking 点比较多
        子节点收取 RDB 过程中要 flush and reload db，全程都是 blocking 的
        如果子节点自己开启了 AOF，为了保证同步完成后 AOF 文件立即可用，会自己做 AOF 重写，会导致子节点 blocking
        如果不允许子节点提供 stale 数据，则子节点全程都会 blocking
      2 还自带一个 sendbuffer，保证 rdb 之外的写命令会被 replica
    部分复制（作为全量复制的补充）
      要求主从节点各自保留各自 replication 成功的偏移量。
        如果定期轮询主从的 offset，可以得知当前的集群的健康度
      主节点设计一个积压缓冲区，所有 client 共用一个积压缓冲区配置
      主节点要对自己的 rdb 保持一个 node id，不同的 node id 的 rdb 对于 slave 是不同的 rdb，可能导致从节点 flush db-因为 offset 本身就不准确了。
  6. 发送后续命令