当前位置:网站首页>Redis 主从同步
Redis 主从同步
2022-07-01 22:58:00 【Mar丶流年】
概念
runID 每一个redis实例的唯一标识,不知道对方runID 则以?代替
offset 复制进度 -1 代表第一次复制
第一次主从同步
由从实例发送 pysnc 告知主实例第一次连接
主实例将offset,和runID发送给从库
主实例再通过bgsave生成全量RDB,生成RDB期间及之后的操作命令写入到repl buffer
将RDB发送给从实例
从实例执行完RDB后,主实例再将repl buffer发送给从实例
主从网络闪断的恢复过程(增量复制)
主实例和从实例上都有一个环形缓冲区(repl_back_log)
主实例中的repl_back_log记录自己写到那里
从实例中的repl_back_log记录自己读到那里
主实例每执行一条命令会往repl_buffer,repl_back_log中写入记录
当主从恢复连接后。从实例将自己的已经读取的位置(slave_repl_offset)发送给主实例
主实例根据自己写到的位置(master_repl_offset),找到从实例缺失的数据(master_repl_offset - slave_repl_offset 区间段的数据) 发送给从实例同步
主从级联
在一主多从的模式下,如果数据同步都由主实例去同步,主实例承担比较大的压力
这时候可以将部分的同步任务交给先同步的实例去同步给未同步的实例。
将主实例比喻成老板,从实例比喻成员工,老板给员工分配任务要一个一个分配
但是如果将员工提拔为(总经理,总裁),那么老板把任务分配给它两,它两再分配给员工,这样就减轻了老板的压力
注意事项
由于 repl_back_log 是环形缓冲区
环形缓冲写完一个周期就会开始覆盖数据
如果主实例的写入速度大于从实例的读取速度,可能造成从实例还未读取的数据被主实例新写的操作覆盖了
所以合理设置环形缓冲区的大小很重要(repl_backlog_size)
查了下资料,一般设置成 (主实例写入命令速度 * 操作大小 - 主从网络传输命令速度 * 操作大小) * 2
边栏推荐
- Istio, ebpf and rsocket Broker: in depth study of service grid
- Typescript enumeration
- CKS CKA ckad change terminal to remote desktop
- from pip._ internal. cli. main import main ModuleNotFoundError: No module named ‘pip‘
- Istio、eBPF 和 RSocket Broker:深入研究服务网格
- [micro service sentinel] sentinelresourceaspect details
- Postgresql源码(58)元组拼接heap_form_tuple剖析
- JS - use of arguments
- [机缘参悟-35]:鬼谷子-飞箝篇-远程连接、远程控制与远程测试之术
- CKS CKA ckad change terminal to remote desktop
猜你喜欢
![Jielizhi Bluetooth headset quality control and production skills [chapter]](/img/3e/571d246d211a979e948dae1de56e93.png)
Jielizhi Bluetooth headset quality control and production skills [chapter]

Development trend and future direction of neural network Internet of things

Redis data types and application scenarios

Redis数据类型和应用场景

CKS CKA CKAD 将终端更改为远程桌面

物联网现状及未来发展趋势

2021 RoboCom 世界机器人开发者大赛-本科组初赛

神经网络物联网的未来趋势与发展
![Jielizhi Bluetooth headset quality control and production skills [chapter]](/img/ad/28e7461f8c5dc5c54a3f4da0c111ac.png)
Jielizhi Bluetooth headset quality control and production skills [chapter]

Current situation and future development trend of Internet of things
随机推荐
Redis数据类型和应用场景
Daily three questions 6.28
【微服务|Sentinel】@SentinelResource详解
Practical application and extension of plain framework
实在RPA:银行数字化,业务流程自动化“一小步”,贷款审核效率“一大步”
Redis~02 缓存:更新数据时如何保证MySQL和Redis中的数据一致性?
问题随记 —— file /usr/share/mysql/charsets/README from install of MySQL-server-5.1.73-1.glibc23.x86_64 c
Win 10 mstsc connect RemoteApp
y53.第三章 Kubernetes从入门到精通 -- ingress(二六)
js——arguments的使用
CKS CKA ckad change terminal to remote desktop
from pip._ internal. cli. main import main ModuleNotFoundError: No module named ‘pip‘
每日三题 6.30(2)
The difference between timer and scheduledthreadpoolexecutor
Switch to software testing, knowing these four points is enough!
The online beggar function of Japanese shopping websites
物联网技术应用属于什么专业分类
mysql ---- Oracle中的rownum转换成MySQL
MySQL -- convert rownum in Oracle to MySQL
JS - use of arguments



