极客时间 Redis核心技术与实战 基础篇 笔记02

06 | 数据同步:主从库如何实现数据一致?

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

   好了,到这里,我们了解了主从库间通过全量复制实现数据同步的过程,以及通过“主 - 从 - 从”模式分担主库压力的方式。那么,一旦主从库完成了全量复制,它们之间就会一直维护一个网络连接,主库会通过这个连接将后续陆续收到的命令操作再同步给从库,这个过程也称为基于长连接的命令传播,可以避免频繁建立连接的开销。

 

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

    在网络断连阶段,主库可能会收到新的写操作命令,所以,一般来说,master_repl_offset 会大于 slave_repl_offset。此时,主库只用把 master_repl_offset 和 slave_repl_offset 之间的命令操作同步给从库就行。

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

 

 

07 | 哨兵机制:主库挂了,如何不间断服务?

 

极客时间 Redis核心技术与实战 基础篇 笔记02

哨兵进程会使用 PING 命令检测它自己和主、从库的网络连接情况,用来判断实例的状态。如果哨兵发现主库或从库对 PING 命令的响应超时了,那么,哨兵就会先把它标记为“主观下线”。

在判断主库是否下线时,不能由一个哨兵说了算,只有大多数的哨兵实例,都判断主库已经“主观下线”了,主库才会被标记为“客观下线”,这个叫法也是表明主库下线成为一个客观事实了。这个判断原则就是:少数服从多数。同时,这会进一步触发哨兵开始主从切换流程。

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02

极客时间 Redis核心技术与实战 基础篇 笔记02