概念:

  主从复制就是主机数据更新后,根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。

配置:

(1)“一主二仆”策略

  准备三台redis服务器:主服务器A,从服务器B1、从服务器B2。服务器B1、B2同步A数据,A1负责写操作,B1、B2负责读操作。

  A服务器IP:168.7.5.74,端口6379

  B1服务器IP:168.7.5.75,端口6379

  B2服务器IP:168.7.5.76,端口6379

  • 使用命令

  在服务器B1、B2上分别执行如下命令,成为A服务器的从库:

  slaveof 168.7.5.74 6379

  使用命令可查看当前库role、master_host、manter_port、connected_slaves相关配置信息:

  info replication

  注意: 

    a、当主库宕机后,从库仍是slave角色,仍负责接受读操作;

    b、当主库恢复服务后,从库B1、B2继续同步主库A的数据,服务照旧;

    c、当从库与master断开连接后,如果使用的是命令配置,需要重新使用命令才能连接到主库;

    d、当从库连接master后,master会先一次性将当前数据全量同步到salve上,后续增量同步。

  从库复制原理:

    Slave 启动成功后连接到 master 后,将发送一条sync命令,master接收到命令后,在后台启动存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,master将传送整个数据文件到slave,以完成一次全量同步。只要重新连接master,将自动执行一次全量复制(完全同步)。

  • 使用配置文件

    在需要成为从库的redis配置文件中添加配置"replicaof 10.7.5.74 6379"即可。与命令配置不同的是,从库重启服务后将自动同步主库,无需额外操作。

         

(2)“薪火相传”策略

  准备三台redis服务器:服务器A,服务器B、服务器C。将服务器B设置为服务器A的从库,将服务器C设置为服务器B的从库:masterA <-- slaverB <-- slaverC。  

  A服务器IP:168.7.5.74,端口6379

  B服务器IP:168.7.5.75,端口6379

  C服务器IP:168.7.5.76,端口6379

  执行如下命令进行该策略配置:

  在服务器B上执行:slaveof 168.7.5.74 6379

  在服务器C上执行:slaveof 168.7.5.75 6379

  注意:

    a、服务器A的角色为 master,服务器B和C的角色为 slaver;

    b、当主库A宕机后,在从库B上执行命令 slaverof no one 将从库B角色变为 salve ,从库C无需操作,将继续使用同步B;

    c、当A重启服务器后,与BC库组成的体系毫无关系,需重新执行命令加入;

    d、salverof no one :是当前数据库停止与其他数据库的同步,并转换为主数据库。

  优点:去除“一主二仆”策略的中心化,减轻master库写的压力。

  缺点:从库存在备份延迟

(3)哨兵模式

  原理:在后台自动监控主机是否故障,如果故障了,根据投票自动将从库转为主库。

   配置:

   a、创建哨兵模式配置文件。在redis.conf目录下创建文件 sentinel.conf (名称固定),内容如下:

    sentinel monitor hostname 127.0.0.1 6379 1  

    hostname 127.0.0.1 6379 :分别是被监控主机的主机名、IP及端口号

    1指定策略:主机宕机后,slave投票决定谁接替主机

    b、启动哨兵模式

     redis-sentinel /usr/redis/sentinel.conf

  注意:

    a、若当前master宕机后,服务将在从库中选出新的master;

    b、若旧master重启后,它将自动成为新的master的slave;

    c、一个哨兵(sentinel)可以监控多个master。

应用:

  读写分离、容灾备份

主从复制的缺点:

  复制的延迟,写操作都在master上,然后同步到slave上,所以会有一定的延迟,同时slave机器数量的增加也会使延迟问题更加严重。

Redis之Redis主从复制的更多相关文章

  1. nginx+tomcat+redis sesson id主从复制

       Redis与Memcached的区别:     内存利用率:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储, ...

  2. redis数据库安装 redis持久化及主从复制

    ----------------------------------------安装redis-5.0.4---------------------------------------- wget h ...

  3. 【中间件】Redis 实战之主从复制、高可用、分布式

    目录 简介 持久化 主从复制 高可用 Redis-Sentinel .NET Core开发 分布式 Redis-Cluster 配置说明 常见问题 简介 本节内容基于 CentOS 7.4.1708, ...

  4. Redis集群主从复制(一主两从)搭建配置教程【Windows环境】

    如何学会在合适的场景使用合适的技术方案,这值得思考. 由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基 ...

  5. Redis全方位讲解--主从复制

    前言 前面介绍了redis持久化和容灾备份,这篇会介绍redis主从复制和redis持久化在主从复制中的一些应用.因为本人没有那么多服务器或机器,所以这里主要介绍下如何在docker容器中搭建主从复制 ...

  6. Redis全方位讲解--主从复制(转载)

    前言 前面介绍了redis持久化和容灾备份,这篇会介绍redis主从复制和redis持久化在主从复制中的一些应用.因为本人没有那么多服务器或机器,所以这里主要介绍下如何在docker容器中搭建主从复制 ...

  7. Redis 学习之主从复制

    该文使用centos6.5 64位    redis3.2.8 主从复制 Redis的复制功能是支持多个数据库之间的数据同步.一类是主数据库(master)一类是从数据库(slave),主数据库可以进 ...

  8. 10分钟彻底理解Redis持久化和主从复制

    在这篇文章,我们一起了解 Redis 使用中非常重要的两个机制:Reids 持久化和主从复制. 什么是 Redis 持久化? Redis 作为一个键值对内存数据库(NoSQL),数据都存储在内存当中, ...

  9. Redis 实战之主从复制、高可用、分布式

      目录 简介 持久化 主从复制 高可用 Redis-Sentinel .NET Core开发 分布式 Redis-Cluster 配置说明 常见问题 简介 本节内容基于 CentOS 7.4.170 ...

  10. Redis进阶:Redis的主从复制机制

    Redis进阶:Redis的主从复制机制 主从复制机制介绍 单机版的Redis存在性能瓶颈,Redis通过提高主从复制实现读写分离,提高了了Redis的可用性,另一方便也能实现数据在多个Redis直接 ...

随机推荐

  1. java笔记--正则表达式的运用(包括电话,邮箱验证等)

    正则表达式 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3877402.html "谢谢-- 正则表达式符号:" ...

  2. Sys.WebForms.PageRequestManagerParserErrorException: 常见的原因是:通过调用Response.Write()修改相应时,将启用响应筛选器、HttpModules或服务器追踪

    Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息,之所以出现此错误,常见的原因是:通过调用Response.Writ ...

  3. Windows Server 2008 R2 /2012 修改密码策略(摘抄 原文地址 https://www.cnblogs.com/mili3/p/7799347.html)

    今天建了域环境,在添加新用户的时候,发现用简单的密码时域安全策略提示密码复杂度不够,于是我就想在域安全策略里面把密码复杂度降低一点. 问题:    在“管理工具 >> 本地安全策略 > ...

  4. Java学习---程序设计_面试题[2]

    百度2017春招笔试真题编程题集合之买帽子 // 2017-10-09 // 题目描述 // 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同.度度熊想买一顶价格第三便宜的帽子,问第 ...

  5. Android 手机 黑域

    黒域地址下载: http://pan.baidu.com/s/1bDYerc 连接手机,选择USB使用方式为“用作MIDI设备“ 0. (手机) 打开黑域,阅读向导1. (手机) 打开黑域,按屏幕提示 ...

  6. Power shell 复制文件到远程主机

    昨天因为要复制文件到多个服务器上,感觉一个个复制很麻烦,我就想用Power shell 命令来完成这个任务.具体代码如下: $servers= 'server1' ,'server2' $userna ...

  7. ZT Android Debuggerd的分析及使用方法

    Android Debuggerd的分析及使用方法 分类: 移动开发 android framework 2012-12-28 12:00 983人阅读 评论(0) 收藏 举报 目录(?)[+] An ...

  8. mac本机svn命令使用

    公司项目用到svn,之前做版本管理用的是git. 现在对svn回顾学习了一下. 这里有一篇很好的入门教程 http://www.rubyrobot.org/tutorial/subversion-wi ...

  9. Android 6.0动态权限申请教程

    转载请标明出处: http://www.cnblogs.com/why168888/p/6580396.html 本文出自:[Edwin博客园] PermissionManage 介绍 如果设备运行的 ...

  10. 5、Python,enumerate用法

    1.enumerate()是python的内置函数 2.对于一个可迭代(iterable)/可遍历的对象(如列表,字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 3.多用 ...