Redis的复制(Master/Slave)目录导航:

  • 是什么
  • 能干嘛
  • 怎么玩
  • 复制原理
  • 哨兵模式(sentinel)
  • 复制的缺点

是什么

  • 官网

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

能干嘛

  • 读写分离
  • 容灾恢复

怎么玩

  • 配从(库)不配主(库)
  • 从库配置:slaveof 主库IP 主库端口
    • 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
    • Info replication
  • 修改配置文件细节操作
    • 拷贝多个redis.conf文件

    • 开启daemonize yes

    • Pid文件名字
    • 指定端口
    • Log文件名字

    • Dump.rdb名字

  • 常用3招

    • 一主二仆

      • Init

      • 一个Master两个Slave

      • 日志查看

        • 主机日志

        • 备机日志

        • info replication

      • 主从问题演示

1 切入点问题?slave1、slave2是从头开始复制还是从切入点开始复制?比如从k4进来,那之前的123是否也可以复制
2 从机是否可以写?set可否?
3 主机shutdown后情况如何?从机是上位还是原地待命
4 主机又回来了后,主机新增记录,从机还能否顺利复制?
5 其中一台从机down后情况如何?依照原有它能跟上大部队吗?

    • 薪火相传
      • 上一个Slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻master的写压力

      • 中途变更转向:会清除之前的数据,重新建立拷贝最新的
      • Slaveof 新主库IP 新主库端口
    • 反客为主
      • SLAVEOF no one

        • 使当前数据库停止与其他数据库的同步,转成主数据库

复制原理

  • Slave启动成功连接到master后会发送一个sync命令
  • Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步

  • 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
  • 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步
  • 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

哨兵模式(sentinel)

  • 是什么
    • 反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
  • 怎么玩(使用步骤)
    • 调整结构,6379带着80、81
    • 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错
    • 配置哨兵,填写内容
      •  sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1
      • 上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机
    • 启动哨兵

      • Redis-sentinel /myredis/sentinel.conf
      • 上述目录依照各自的实际情况配置,可能目录不同
    • 正常主从演示
    • 原有的master挂了

    • 投票新选

    • 重新主从继续开工,info replication查查看

    • 问题:如果之前的master重启回来,会不会双master冲突?

  • 一组sentinel能同时监控多个Master

复制的缺点

  • 复制延时

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

Redis(八):Redis的复制(Master/Slave)的更多相关文章

  1. Redis的复制(Master/Slave)

    是什么 : 也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 能干嘛: 读写分离,容灾恢复 怎么玩: 1 ...

  2. 【Redis】Redis学习(二) master/slave、sentinel、Cluster简单总结

    项目中用到Redis,所以准备学习一下,感觉Redis的概念还是很多的,什么主从模式.sentinel模式.集群模式的,一下子都晕了,我觉得还是有必要先理清这些基本概念再说. 一.单节点实例 单节点实 ...

  3. Redis的自从复制(Master/Slave)

    一.是什么? 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 二.能干嘛? 1.读写分离 2.容 ...

  4. Redis学习十:Redis的复制(Master/Slave)【重要】

    一.是什么 官网 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 二.能干嘛 读写分离  容灾恢 ...

  5. Redis的master/slave复制

    摘自:Redis的master/slave复制 Redis的master/slave数据复制方式可以是一主一从或者是一主多从的方式,Redis在master是非阻塞模式,也就是说在slave执行数据同 ...

  6. Redis的复制(Master/Slave)、主从复制、读写分离

    1.什么是Redis的复制 行话:也就是我们所说的主从复制,主数据更新后根据配置和策略自动同步到备用机的master/slave机制,Mater以写为主,slave以读为主. 2.能干什么 2.1.读 ...

  7. 8.Redis的复制(Master/Slave)

    Redis的复制(Master/Slave) a)是什么 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave ...

  8. redis 学习笔记(3)-master/slave(主/从模式)

    类似mysql的master-slave模式一样,redis的master-slave可以提升系统的可用性,master节点写入cache后,会自动同步到slave上. 环境: master node ...

  9. redis的主从机制 master&slave

    转载自:https://www.cnblogs.com/qwangxiao/p/9733480.html 一:master&slave的解释? master&slave就是主从复制,主 ...

随机推荐

  1. Linq批量建表

    public JsonResult CreateTable() { db = new RZBDbContext(); var query = (from c in db.Clients select ...

  2. python 测试:生成exe文件

    任务: test.py print(input('请输入:')) 将test.py生成test.exe 解答: 安装: pip install pyinstaller 命令使用: (绝对地址)pyin ...

  3. writing a javascript module ready for ES6 import

    javascript模块化是一个比较大也是比较容易混淆的topic.通常几乎所有的第三方Library都支持CMD,AMD,ES6,Global object方式来引用lib所暴露出来的服务. 那么如 ...

  4. vim的visual模式

    在可视化模式下,可以对一个文本块的整体进行操作.例如,首先高亮选中一部分文本,然后用d命令删除这个文本块.可视化模式的好处在于,你可以在做改动之前,就看到操作将影响的文本.可视化模式可以分为以下三种: ...

  5. 【转】Java中的多线程你只要看这一篇就够了

    https://www.jianshu.com/p/40d4c7aebd66 引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的, ...

  6. Hyperledger Fabric 1.0 学习搭建 (一)--- 基础环境搭建

    1: 环境构建在本文中用到的宿主机环境是Centos ,版本为Centos.x86_64 7.2, 一定要用7版本以上, 要不然会安装出错. 通过Docker 容器来运行Fabric的节点,版本为v1 ...

  7. Jenkins的job执行arquilian test时总是报JBoss启动失败错误

    我的Jenkins环境是一个Master+一个slave,Job的执行主要由slave来进行.Master只负责调度. slave上安装有JDK7.JDK8.slave agent用的是java we ...

  8. 【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.4.类加载及执行子系统的案例与实战

    1.概述 在Class文件格式与执行引擎这部分中 : 用户不能控制的:Class文件以何种格式存储,类型何时加载. 如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为 用户能控制的:字 ...

  9. win10 x64 注册ZQDeviceOcx.ocx控件

    正常的方式在32位系统下可行, 但是在64位系统下是不可行的. 在64位系统中正确的注册步骤是: 1. 将对应的ocx和dll放到C:\Windows\SysWOW64目录下. 2. 然后找到C:\W ...

  10. Codeforces Round #434 (Div. 2)【A、B、C、D】

    Codeforces Round #434 (Div. 2) codeforces 858A. k-rounding[水] 题意:已知n和k,求n的最小倍数x,要求x后缀至少有k个0. 题解:答案就是 ...