redis怎么实现数据同步


本文摘自PHP中文网,作者(*-*)浩,侵删。

Redis的主从同步机制可以确保redis的master和slave之间的数据同步。

同步方式包括:全量复制和增量复制 (推荐学习:Redis视频教程)

全量拷贝

nginx-29.png

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》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...