您现在的位置是:首页 >学无止境 >redis复制机制网站首页学无止境

redis复制机制

牧.. 2024-06-17 10:24:58
简介redis复制机制

1. Redis 复制机制


概念 :

在这里插入图片描述


Redis 复制机制 能干的活 :

  1. 读写分离 : 写 就找 主机 master , 读就找从机 Slave
  2. 容灾恢复 : 主机突然宕机 , 我们可以通过从机将数据恢复
  3. 数据备份
  4. 水平扩容支撑高并发

2. 基本命令


这里我们想要玩转 Redis复制 ,需要配置从机 .


注意 :只需要配置 从库 ,不需要配置主库


配置两台从机大致图 :

在这里插入图片描述


关于如何配置 等下代码案例的时候会一步一步的配置 ,这里先来看看 Redis 复制的基本命令.

在这里插入图片描述

3. 修改配置文件


说明 :

在这里插入图片描述


配置文件


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


注意 : 上面拷贝的 6380 ,和 6381 对应的日志文件并没有修改 ,下面来修改一下.

在这里插入图片描述


另外 : 端口号也需要更改一下

在这里插入图片描述

4. 代码案例

4.1 一主二仆

启动 三台机器 :

在这里插入图片描述

启动完后 ,我们可以 来看看 主机 和 从机的 日志文件

在这里插入图片描述

日志看完 , 就来 使用我们的第一个命令 info replication 查看 复制节点的主从关系和配置信息.

在这里插入图片描述


下面我们来 在主机上 创建几个数据 看看 从机是否能够获取到创建的数据

在这里插入图片描述


到此 一主二仆 相关的配置与操作就完成了,下面我们来看几个问题 .


1. 从机可以执行写命令吗 ?


答案 : 不能

在这里插入图片描述


2.从机切入点问题

在这里插入图片描述


3. 主机 shutdown 后 , 从机会上位吗 ?


答案 : 从机不会上文 ,而是原地待命,等待主机重启归来

在这里插入图片描述


图二 :

在这里插入图片描述



看完这三个问题, 下面我们来看第二个命令 : slaveof


slaveof 主机 IP 主机端口号 : 这个命令是 用来设置 从属关系的 ,


上面我们是通过 配置文件中的 replicaof 固定写死了 要跟随的主机 , 下面我们就通过 slaveof 来指定要跟随的主机 .


注意 : 通过 slaveof 配置的从属关系 ,会在宕机 或某种意外 使 从机 与 主机 master 断开之后 ,自动取消从属关系 . 如果要继续维持 从属关系 需要 在执行一遍 slaveof 命令.

图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述

4.2 薪火相传


啥是薪火相传呢 ?


图一 :

在这里插入图片描述

图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


下面提出一个问题 : slave1 相当于 slave2 的 主机, 那么 slave 1 是能够进行写操作呢 ?

在这里插入图片描述

4.3 反客为主


简单一句话 就是 :老子不干了 , 我不当小弟了, 我要当大哥 .


通过 slaveof no one 命令 , 使当前数据库停止与其他数据库的同步, 转变为 主机 master.

在这里插入图片描述

5. Redis复制工作流程


在这里插入图片描述

6. Redis 复制的缺点

  1. 复制延时 , 信号衰弱

    在这里插入图片描述


2. master 挂了 ,会导致无法进行写操作 . 从机 slave 只能进行读操作 , master 挂了之后 会一直等待 主机重新上线.


针对 从机 在 主机挂了之后 ,一直等待 主机上线 这个 行为 ,就引出我们接下来要学习的 Redis 哨兵 .

简单说一下为啥需要哨兵 , 因为 主机挂了,我们不可能一直让 从机等待 ,所以需要在从机中选一个机器让它当主机,但是从机在默认情况

下是不会自动重新选一个 主机的 ,此时就需要一个 人 来从 从机中选出一个 主机 选一个老大, 所以 哨兵就应运而生.

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。