Redis主从同步原理-SYNC

和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,下图为级联结构。

Redis主从复制可以根据是否是全量分为全量同步和增量同步。

1 全量同步

Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:

1)从服务器连接主服务器,发送SYNC命令;

2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;

3)主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;

4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;

5)主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;

6)从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

完成上面几个步骤后就完成了从服务器数据初始化的所有操作,从服务器此时可以接收来自用户的读请求。

2 增量同步

Redis增量复制是指Slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。

增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。

3 Redis主从同步策略

主从刚刚连接的时候,进行全量同步;全量同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。

4 其他

Redis 2.8以后提供了PSYNC优化了断线重连的效率

http://blog.csdn.net/sk199048/article/details/77922589

参考:

[1] 《Redis IN ACTION》

[2] http://blog.csdn.net/houjixin/article/details/27680183

[3] http://daoluan.net/blog/2014/04/22/decode-redis-replication/

原文:https://blog.csdn.net/sk199048/article/details/50725369

Redis主从同步原理-PSYNC

https://blog.csdn.net/sk199048/article/details/77922589

---------------------

原文:https://blog.csdn.net/yuyh131/article/details/83629656

redis mysql主从同步_Redis主从数据库同步相关推荐

  1. mysql数据库主从同步配置教程--数据库同步

    背景: 最近有一个mysql数据库同步的需求,我用了mysql主从同步的方法来实现.下面把步骤记录一下. 环境和拓扑 操作系统:Centos6.6 X64 mysql版本:5.1.73 Master: ...

  2. mysql数据库同步时间_MySQL 数据库同步

    简明现代魔法 -> 数据库技术 -> MySQL 数据库同步 MySQL 数据库同步 2010-01-15 MySQL 的数据同步,在 MySQL 官方网站文档上,叫 Replicatio ...

  3. mysql数据库同步工具_mysql同步工具_mysql数据库同步

    下载网站:www.SyncNavigator.CN  客服QQ1793040 ---------------------------------------------------------- 关于 ...

  4. 不同数据库同步方式|异地数据库同步|mysql数据库实时同步工具|数据库实时同步

    SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构 ...

  5. sqlserver数据库同步软件_sqlserver同步工具_ 数据库同步解决方案

    SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构 ...

  6. redis 主从模式_Redis主从模式部署文档

    Redis复制概念 中文资料:http://www.redis.cn/topics/cluster-tutorial.html 在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Re ...

  7. redis mysql 集群_Redis(五)、Redis数据库集群相关

    Redis数据库集群 第1章 集群简介 Redis 集群是一个分布式(distributed).容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所 ...

  8. redis mysql排行榜实现_redis实现排行榜

    1 前言 实现一个排版榜,我们通常想到的就是mysql的order by 简单粗暴就撸出来了.但是这样真的优雅吗? 数据库是系统的瓶颈,这是众所周知的.如果给你一张百万的表,让你排序做排行榜,花费的时 ...

  9. Redis mysql查询结果_Redis Select 命令

    Redis Select 命令 - 切换到指定的数据库 Redis Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值. 语法 redis Sel ...

最新文章

  1. IOS中获取各个文件的目录路径的方法和NSFileManager类
  2. testNG的DataProvider返回IteratorObject[]的妙用
  3. java基础系列:集合基础(1)
  4. 数据采集之解析Mysql的binlog日志发送至Kafka实时消费(转:https://blog.csdn.net/liguohuabigdata/article/details/79472777)
  5. android 布局设置背景的透明度
  6. pytorch指定用多张显卡训练_Pytorch中多GPU训练指北
  7. Linux系统文件有三个主要的时间属性,分别是ctime(change time), atime(access time), mtime(modify time)...
  8. 寻找连通域算法_FPGA实现的连通域识别算法升级
  9. python字典有什么用_Python中的字典介绍
  10. oracle number长度转换,Oracle Number型数值存储与转换的实现详解
  11. 利用k-means算法实现图像自动色彩量化
  12. IDEA: 遇到问题Error during artifact deployment. See server log for details解决方法
  13. niceScroll滚动条使用
  14. 34岁程序员年薪50w,java工程师转正答辩
  15. 惠普触控板使用指南_hp触摸板(hp笔记本触摸板怎么开)
  16. FFmpeg 加水印 加马赛克
  17. java.lang.NumberFormatException: For input string: “22-02-22 07:13:3
  18. LInux 的流量限制
  19. 解字谜:黑白皆算,对我等众猿而言中央C所在位置数优剃爱肤杠吧爱慕帝贰亿次的值是?...
  20. NX二次开发-UFUN工程图导入视图UF_DRAW_import_view

热门文章

  1. 色彩应用:不同色相的搭配调子
  2. K近邻分类算法实战教程
  3. 二分类、多分类和多标签分类
  4. MTK层相关应用集合(摘抄)
  5. 余姚小学2016Pascal全题解答
  6. 命令行mysql直接进入数据库_使用CMD命令进入MySQL数据库的方法
  7. 接口报错401 状态码 Unauthorized
  8. python编程类型_python编程 | 第二章 变量和简单数据类型
  9. 拼多多网店运营推广技巧有哪些
  10. 前端要不要学习一门后端语言_这是一门免费课程,可帮助前端开发人员学习数学