课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
数据同步是实现软件高可靠性的重要标志之一,而今天我们就通过案例分析来了解一下,数据同步主从复制原理与实现步骤。
Redis具有高可靠性,体现在两方面:
一是数据尽量少丢失,通过前面介绍的持久化方式AOF和RDB,在宕机时可以恢复数据。
二是服务尽量少中断,通过副本冗余来实现。
今天我们学习的就是通过主从复制实现副本冗余,从而实现Redis的高可靠性。
什么是主从复制
Redis提供主从库模式,保证数据副本的一致,主从库之间采用的是读写分离的方式。
为什么要读写分离?
如果允许所有节点能够处理读写请求,就需要解决加锁、实例间协商、数据同步等操作,会带来巨额的开销。
因此采用主从库模式时,要配置主库只写,从库只读。
步骤一、主从库建立连接,协商同步。
从库发送psync命令,表示进行数据同步。其中runID表示主库ID,一次不知道主库的runID,就设置为"?"
主库收到psync命令后,用FULLRESYNC响应,返回runID(主库ID)和offset(主库目前的复制进度)。
从库收到响应后,记录这两个参数
步骤二、主库同步数据给从库。
从库收到数据后,在本地完成数据加载。这过程依赖于RDB快照。
主库执行bgsave命令,生成RDB文件,再把文件发强从库。
从库收到RDB文件后,先清空当前数据库,然后加载RDB文件。
步骤三、主库发送新写命令给从库
主库在数据同步过程中,会记录所有写操作,避免丢失同步过程接收的新的写命令。
主库使用replicationbuffer来新的写命令。
当从库加载RDB文件完成后,主库再把replicationbuffer的内容发送给从库,从库再执行这些操作实现同步。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。