文章目录

  • 前言
  • 一、Redis主从复制的作用
  • 二、Redis主从复制环境配置
    • 1.查看默认配置信息
    • 2.配置一主二从的集群模式
      • 2.1.拷贝配置文件
      • 2.2.配置redis79.conf文件
      • 2.3.配置redis80.conf文件
    • 3.依次启动三个服务
    • 4.进入三台服务,检查角色信息
    • 5.选举Leader
    • 6.读写分离,主从复制
  • 三、主节点宕机,从节点角色任然不变
  • 总结

前言

概念:主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master/Leader),后者称为从节点(Slave/Follower), 数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)

一、Redis主从复制的作用

1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余的方式。

2、故障恢复:当主节点故障时,从节点可以暂时替代主节点提供服务,是一种服务冗余的方式。

3、负载均衡:在主从复制的基础上,配合读写分离,由主节点进行写操作,从节点进行读操作,分担服务器的负载;尤其是在多读少写的场景下,通过多个从节点分担负载,提高并发量。

4、高可用基石:主从复制还是哨兵和集群能够实施的基础。

二、Redis主从复制环境配置

1.查看默认配置信息

info replication


当前角色为主节点,没有从节点。

2.配置一主二从的集群模式

2.1.拷贝配置文件

2.2.配置redis79.conf文件

在命令模式下敲斜杆( / )这时在状态栏(也就是屏幕左下脚)就出现了 “/” 然后输入你要查找的关键字敲回车就可以了。 如果你要继续查找此关键字,敲字符 n 就可以继续查找了。
修改输出日志:

修改RDB持久化二进制文件名称:

2.3.配置redis80.conf文件

修改端口号:

修改后台运行进程文件:

修改日志文件:

修改RDB持久化二进制文件名称:

修改redis81.conf也是和6380一样的配置,将其中的6380改成6389即可。

3.依次启动三个服务

redis-server dtconfig/redis79.conf

redis-server dtconfig/redis80.conf

redis-server dtconfig/redis81.conf


查看进程:

ps -ef | grep redis

4.进入三台服务,检查角色信息

redis-cli -p 6381
INFO replication




默认情况下,三台都是主机:

5.选举Leader

选择6379作为主节点,其余6380、6381作为从节点,我们只需要配置80、和81从节点即可:

SLAVEOF 127.0.0.1 6379


查看6380当前角色信息:

查看6379主节点信息:

配置6381从节点:

查看主节点6379:

真实的项目中配置不能这么配置,我们应该从配置文件中进行配置,这样才会永久生效:

6.读写分离,主从复制

注意(重点面试题):主节点可读可写、从节点只能读不能写。

主节点写,数据自动备份至从节点,然而从节点只能读,不能写。


尝试在从节点写入数据:

错误:只能读不能写。

三、主节点宕机,从节点角色任然不变

我们把主节点6379服务停掉后,查看从节点信息:

再把主节点6379服务开启,写入数据:

检查从节点信息:

再次停掉6379服务,再两个从节点中手动选择从节点:

如果6379再次启动,那么他就没有从节点了,只能重新配置角色。

总结

1、从机只能读,不能写,主机可读可写但是多用于写
2、当主机断电宕机后,默认情况下从机的角色不会发生变化 ,集群中只是失去了写操作,当主机恢复以后,又会连接上从机恢复原状。
3、当从机断电宕机后,若不是使用配置文件配置的从机,再次启动后作为主机是无法获取之前主机的数据的,若此时重新配置称为从机,又可以获取到主机的所有数据。
4、第二条中提到,默认情况下,主机故障后,不会出现新的主机,有两种方式可以产生新的主机:
4、1 从机手动执行命令slaveof no one,这样执行以后从机会独立出来成为一个主机
4、2 使用哨兵模式(自动选举)

Redis主从复制配置(原理剖析)相关推荐

  1. Redis主从复制及原理

    Redis主从复制及原理 Redis主从复制概述 Redis同步方式 Redis配置主从复制 Redis主从复制启用方式(版本5.0之后) Redis主从复制概述 什么是主从复制 主从复制,是指将一台 ...

  2. Redis 主从复制的原理及演进

    本文作者:百度基础架构部工程师,王钰 Redis 的主从复制经历了多次演进,本文将从最基本的原理和实现讲起,并层层递进,逐步呈现 Redis 主从复制的演进历史.大家将了解到 Redis 主从复制的原 ...

  3. Redis主从复制配置

    环境描述 Redis Master:192.168.1.100 6379(Ubuntu系统) Redis Slave1:192.168.1.101 6380(Ubuntu系统) Redis Slave ...

  4. Redis 主从复制的原理及演化

    一.什么是主从复制 在数据库语境下,复制( replication)就是将数据从一个数据库复制到另一个数据库中.主从复制,是将数据库分为主节点和从节点,主节点源源不断地将数据复制给从节点,保证主从节点 ...

  5. (进阶篇)Redis6.2.0 集群 主从复制_原理剖析_02

    文章目录 一.主从复制流程 1. 主从复制流程图 2. 主从复制日志 二.主从复制信息剖析 2.1. 主节点信息剖析 2.2. 从节点信息剖析 三.关键术语 3.1. 复制功能开启 3.2. 全量复制 ...

  6. Redis哨兵模式原理剖析,监控、选主、通知客户端你懂了吗?

    Redis 除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis提供了哨兵模式,来进行故障恢复. 哨兵主要负责做三件事: ①监控,监控主.从节点是否正常运行 ...

  7. 深入Redis 主从复制原理

    复制原理 1.复制过程 复制的过程步骤如下: 1.从节点执行 slaveof 命令        2.从节点只是保存了 slaveof 命令中主节点的信息,并没有立即发起复制        3.从节点 ...

  8. Redis主从复制Redis哨兵机制Springboot整合哨兵

    目录 一.Redis主从复制 full resync(全量复制) partial resync(增量复制) 二.Redis主从复制配置 三.哨兵机制原理 每个 Sentinel 都需要定期执行的任务 ...

  9. Redis主从复制(薪火相传模式 演示示例)——图解版

    目录 一.redis主从复制(薪火相传的理解) 二.Redis主从复制配置步骤概述 三.lz虚拟机配置说明 四.Redis主从复制(每台服务器的redis配置文件配置步骤) 1.配置master服务器 ...

最新文章

  1. 只知道GAN你就OUT了——VAE背后的哲学思想及数学原理
  2. Swift41/90Days - 面向轨道编程 - Swift 中的异常处理
  3. 解决transition动画与display冲突的几种方法
  4. Linux学习之十二-Linux文件属性
  5. .NET中栈和堆的比较【转自:c#开发园地】
  6. oracle 日期改字符格式,如何在oracle10g中将字符串日期转换为日期格式
  7. IBM MQ的常用命令
  8. ZOJ 3490 String Successor
  9. rman坏块的检测与恢复
  10. symfony ajax,如何在php或symfony中使用jQuery ajax上传文件
  11. Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结
  12. python第三方库scapy中的sniff函数里的iface参数如何设置?
  13. 程序员面试技巧必读篇(一套太极剑法传授给你)
  14. 携程景区爬取 + 保存Excel
  15. 在 Beagleboard-x15 上配置 spi 和 GPIO
  16. CCF-野外环境中的蝴蝶自动识别-排名54
  17. 基于nonebot2+go-cqhttp的QQ机器人构建(1)机器人搭建
  18. Spark:java.net.URISyntaxException: Relative path in absolute URI: file:D:/XXX/SparkFaultBench/spark-
  19. Linux后处理软件,FieldView(CFD后处理软件)
  20. 2022全国中学生数学奥林匹克竞赛(决赛)获奖名单来了!

热门文章

  1. OpenJudge NOI 1.5 37:雇佣兵
  2. 信息学奥赛一本通(1204:爬楼梯)
  3. 理论基础 —— 索引 —— 2-3 树
  4. 信息学奥赛一本通C++语言——1126:矩阵转置
  5. 信息学奥赛一本通C++语言——1004:字符三角形
  6. ctd数据 matlab,基于auv的ctd数据处理方法
  7. python库文件安装_python安装库包出现问题
  8. linux内核那些事之early boot memory-memblock
  9. Charbonnier Loss
  10. ExtJS4之helloworld