客随主便 -redis 主从同步是怎样的过程?
🍁 作者:知识浅谈,CSDN 博客专家,阿里云签约博主,InfoQ 签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM 算法
💒 公众号:知识浅谈
🔥 联系方式 vx:zsqtcc
客随主便-redis 主从同步是怎样的过程总结🤞这次都给他拿下🤞
🎈主从同步过程
首先主从同步是靠 binlog 日志来完成主从同步的,根据 binlog 中的内存到从服务器上数据更新,使其和主库保证同步。
数据更新,sql 语句或者变更影响的行记录到 binlog 中。
创建 binlogdump 线程把数据发送到从数据库。
从数据库中创建一个 io 线程用来接受主库发来的 binlog 日志,并把日志存储到中继日志 relaylog 中。
从库创建一个 sql 线程,用来把 relay log 中的日志读取到 sql 进行执行同步。
🎈主从同步延迟
📍主从同步延迟原因
关于主从同步还存在 一定的延迟问题,我们有以下解决方案。发生主从同步延迟的问题是因为从库持久化的时候随即重放和锁等待。随即重放:因为 binlog 是顺序写的速度比较快,而在从库中把 relaylog 在数据库中执行,数据存储的位置不是连续的,所以就是随即重放比顺序写消耗时间。锁等待:因为从库在读的时候,写等待,如果读的数据较多,写就需要等待较长时间,也影响了主从同步。
📍主从同步延迟解决方案
强制读主库,当然这样从库就相当于一个备份了。
降低并发,也就是相当于给数据库减少压力了。
延迟读,评估一定的时间,保证主从已经同步。
并行复制,在中继日志到数据库执行的过程采用多个 worker 线程执行,加快重放的速度
🍚总结
以上就是关于主从同步的过程和出现问题及解决方案,希望有所帮助。
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/190520772321bd2c625d91884】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论