本文摘自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 rdb方式数据备份与恢复
Redis主从复制介绍及原理详解
Redis持久化快照的方法与原理
Redis中的双端链表实现
php Redis队列如何实现历史搜索功能
介绍Redis性能监控
Redis事务使用案例分享
Redis阻塞原因详解
用什么方式查看Redis数据占用的内存
Redis在哪里配置缓存清理策略
更多相关阅读请进入《Redis》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » redis怎么实现数据同步