个人博客网:https://wushaopei.github.io/    (你想要这里多有)

一、目录

Redis复制的原理与优化

什么是主从复制
        全量复制和部分复制
        复制的配置
        故障处理
        开发运维常见问题

二、 什么是主从复制

1、单机有什么问题?

单机如果机器故障,那么久无法及时提供服务;

同时单机的内存等容量有限,无法支持耗能较大的应用;

如果应用的访问并发过大,单机环境无法支持那么大的QPS

  所以,这时就需要多态服务器主机通过主从复制的机制提供更好的应用。

2、主从复制的作用:

1)一主一从模型:

左边的master是主节点,右边的slave是从节点。

redis 如何安全的复制Key redis 复制原理_主从复制模型

如图,假如此时右边是一个空的redis,左边是一个有数据的redis,此时,我做一个复制的操作或复制的命令。那么,左边主节点的数据会向右边传过去。

此时,如果向左边的redis写数据,右边的slave也会有一些操作。

redis 如何安全的复制Key redis 复制原理_实现主从复制的方式_02

如图,左边有K1、K2、K3、.....、Kn,同样的,右边也会有K1、K2、K3、...、Kn。

它能够起到对主机进行备份的作用。可以为主机发生宕机时提供数据的支援。
2)一主多从模型:

redis 如何安全的复制Key redis 复制原理_配置_03

一个master可以有多slave,也就是有多个数据的副本。有利于在master和一台slave或两台slave同时挂掉时,还能够有多个数据备份。

以及可以进行读写分离,达到流量分流。

示例:

redis 如何安全的复制Key redis 复制原理_实现主从复制的方式_04

redis 如何安全的复制Key redis 复制原理_主从复制模型_05

3、主从复制作用:

           数据副本

           扩展读性能

小结:

  1) 一个master可以有多个slave

  2)一个slave只能有一个master

  3)数据流向是单向的,master到slave

三、主从复制配置

1、实现主从复制的方式:

两种实现方式:    

redis 如何安全的复制Key redis 复制原理_配置_06

1)命令实现:

redis 如何安全的复制Key redis 复制原理_主从复制模型_07

命令:

redis-6380 > slaveof 127.0.0.1 6379

OK

取消复制(恢复主节点地位):

redis 如何安全的复制Key redis 复制原理_配置_08

已写入数据不做清除,原主节点数据也不再写入

命令:

redis-6380 > slaveof no one

OK

2、修改配置(主从配置):

slaveof ip port 

              在主节点标记从节点 ip  port

slave-read-only yes

               配置从节点只做读操作

3、比较

redis 如何安全的复制Key redis 复制原理_配置_09

四、主从配置-操作

  •         命令
  •         配置
  •         主从关系
  •         主从数据

1、编辑配置文件redis.conf

1)主节点配置:

redis 如何安全的复制Key redis 复制原理_主从复制模型_10

 

redis 如何安全的复制Key redis 复制原理_redis 如何安全的复制Key_11

进程id

redis 如何安全的复制Key redis 复制原理_主从复制_12

日志文件

redis 如何安全的复制Key redis 复制原理_主从复制模型_13

关闭rdb

redis 如何安全的复制Key redis 复制原理_实现主从复制的方式_14

配置rdb文件名:区别主从

redis 如何安全的复制Key redis 复制原理_配置_15

工作目录

redis 如何安全的复制Key redis 复制原理_主从复制模型_16

2)从节点配置:

从节点复制主节点,指定主节点 ip port

redis 如何安全的复制Key redis 复制原理_配置_17

其他配置和主节点一致,只需修改相关名称中的端口号6378为 6379即可

启动主服务器:

redis 如何安全的复制Key redis 复制原理_实现主从复制的方式_18

主节点状态:

redis 如何安全的复制Key redis 复制原理_redis 如何安全的复制Key_19

启动从服务器:

redis 如何安全的复制Key redis 复制原理_实现主从复制的方式_20

从节点状态:

redis 如何安全的复制Key redis 复制原理_主从复制模型_21

同步测试:

redis 如何安全的复制Key redis 复制原理_主从复制模型_22