- redis主从同步分为全量同步和增量同步
- 只有从机第一次连接上主机是全量同步
- 断线重连有可能触发全量同步也有可能是增量同步( master 判断 runid 是否一致)
- 除此之外的情况都是增量同步。
全量同步
Redis全量同步分为3部分:
- 同步快照阶段:Master创建并发送快照rdb给slaver,slaver载入并解析rdb快照,Master同时将次阶段所产生的新的写命令存储到缓冲区。
- 同步写缓冲阶段:Master向slaver同步存储在缓冲区中的写操作
- 同步增量阶段:Master向slaver同步写操作命令
Redis哨兵机制
Redis主从赋值缺点:没有办法对master进行重新选举(master选举后需要重新选举master),需要使用sentinel机制完成master动态选举。
Redis 的哨兵模式到了 2.8版本之后
Sentinel (哨兵)进程是用于监控 Redis 集群中 Master主服务器工作的状态
在 Master 主服务器发生故障的时候,可以实现 Master 和 Slave 服务器的切换,保证系统的高可用。
哨兵进程的作用
- 监控( Monitoring ):哨兵( sentinel ) 会不断地检查你的 Master 和 Slave 是否运作正常。
- 提醒( Notification ): 当被监控的某个 Redis 节点出现问题时, 哨兵( sentinel ) 可以通过 API
向管理员或者其他应用程序发送通知。 - 自动故障迁移( Automatic failover ):当一个 Master 不能正常工作时,哨兵( sentinel ) 会开始
一次自动故障迁移操作