本文摘自PHP中文网,作者(*-*)浩,侵删。
Redis的主从同步机制可以确保redis的master和slave之间的数据同步。
同步方式包括:全量复制和增量复制 (推荐学习:Redis视频教程)
全量拷贝
slave第一次启动时,连接Master,发送PSYNC命令,格式为psync {runId} {offset}
1 2 | {runId} 为master的运行id;{offset}为slave自己的复制偏移量。
slave第一次连接master时,slave并不知道master的runId,也不知道自己偏移量,这时候slave会传一个问号和-1,告诉master节点是第一次同步。格式为psync ? -1
|
当master接收到psync ? -1时,知道slave是要全量复制,就会将自己的runId和offset告知slave,回复命令fullresync {runId} {offset}。同时,master会执行bgsave命令来生成rdb文件,期间的所有写命令将被写入缓冲区。
1 2 | slave接受到master的回复命令后,会保存master的runId和offset,slave此时处于同步状态。
slave处于同步状态,如果此时收到请求,当配置参数slave-server-stale-data yes时,会响应当前请求;slave-server-stale-data no,返回错误。
|
master bgsave执行完毕,向slave发送rdb文件。rdb文件发送完毕后,开始向slave发送缓冲区中的写命令。
阅读剩余部分
相关阅读 >>
Redis怎么用
java中的Redis怎么使用
Redis什么时候持久化
Redis怎么实现分布式事务
Redis事件处理流程分析
数据哪些放Redis哪些放数据库
Redis怎么实现缓存
Redis分布式锁实现原理是什么
Redis秒杀场景解决方案
windows系统添加和删除Redis服务的方法
更多相关阅读请进入《Redis》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » redis怎么实现数据同步