Redis学习(十)---主从复制

概念

是指将一台redis服务器的数据,复制到其他redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower)

  • 数据的复制是单向的,只能从主节点到从节点
  • Master一写为主,Salve以读为主
  • 默认一个主节点可以有多个从节点(或者没有),但是一个从节点只能有一个主节点

为什么要使用主从复制

单机服务器的限制:

  • 出现单点故障,会导致服务器不可用
  • 在存在高使用的情况下,一个服务器压力大
  • 容量瓶颈。redis本身是有容量限制的(256G,一般可用内存20G)

主从复制的作用:

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  • 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
  • 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
  • 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

命令

  • info replication 获取当前服务器的信息
    Redis学习(十)---主从复制

环境配置

只需要配置从机,不用配置主机,因为redis默认启动的服务器,就是默认的主机
因为本人没有那么多服务器,就先搭一个为集群(在一台服务器上启动三个redis服务)

  • 1、最低搭建要求:一主二从。所以需要开四个窗口,其中一个用作测试

  • 2、要启动三个redis服务首先要复制一下三个配置文件
    (复制的文件名一端口命名,容易区分)
    Redis学习(十)---主从复制

  • 3、6379端口作为主节点不用改

  • 4、其他俩个分别要改动四个位置:改动主要原因:(同一个服务器内不能有相同的文件)

    • 4.1 port 端口不能重复,就改为6380和6381吧!
      Redis学习(十)---主从复制

    • 4.2 pidfile进程文件:文件名后面加一个端口
      Redis学习(十)---主从复制

    • 4.3 日志文件logfileRedis学习(十)---主从复制

    • rdb文件dump.rdb.Redis学习(十)---主从复制

  • 接下来启动三个redis 服务:
    Redis学习(十)---主从复制

  • 注意:所有的daemonize都必须为yes
    Redis学习(十)---主从复制