redis复制机制

news/2024/12/29 14:52:52/

文章目录

  • 1. Redis 复制机制
  • 2. 基本命令
  • 3. 修改配置文件
  • 4. 代码案例
    • 4.1 一主二仆
    • 4.2 薪火相传
    • 4.3 反客为主
  • 5. Redis复制工作流程
  • 6. 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 哨兵 .

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

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


http://www.ppmy.cn/news/98798.html

相关文章

使用FSL对DTI数据进行预处理

使用FSL对DTI数据进行预处理 一、topup处理二、eddy处理一、topup处理 为了校正磁场引起的畸变,对DTI的B0像分别采集了A>P和P>A的反向编码的两种B0像。利用AP和PA图像进行一个topup处理,校正畸变。 1、 使用dcm2niix将AP PA图像转为nii格式 假设转换后的图像为sub01_…

《数据库应用系统实践》------ 超市管理系统

系列文章 《数据库应用系统实践》------ 超市管理系统 文章目录 系列文章一、需求分析1、系统背景2、 系统功能结构(需包含功能结构框图和模块说明)3.系统功能简介 二、概念模型设计1.基本要素(符号介绍说明&#xff…

Collections提供的同步包装方法

Java同步容器类是通过synchronized(内置锁)来实现同步的容器,比如Vector、 HashTable以及SynchronizedList等容器。 线程安全的同步容器类主要有: Vector、 Stack、 HashTable等。 Collections提供的同步包装方法 Java提供一组包…

JS中this的指向

JS中this的指向 本文目录 JS中this的指向全局上下文(Global Context)函数上下文(Function Context)普通函数调用作为对象的方法调用构造函数调用箭头函数回调函数 事件处理器上下文(Event Handler Context)…

【Android笔记104】Android之壁纸管理器(WallpaperManager)的使用

这篇文章,主要介绍Android之壁纸管理器(WallpaperManager)的使用。 目录 一、壁纸管理器(WallpaperManager) 1.1、壁纸管理器介绍

【C++初阶】类和对象(下)之友元 + 内部类 + 匿名对象

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

2023.05.28 学习周报

文章目录 摘要文献阅读1.题目2.现有方法存在的局限性3.SR-GNN模型4.模型的组成部分4.1 构图4.2 item向量表示4.3 session向量表示4.4 预测模块 5.实验与分析5.1 数据集5.2 比较方法5.3 评估指标5.4 实验结果 6.结论 有限元法1.一个例子2.进一步 深度学习1.张量场2.对流-扩散方程…

vue常用指令

vue是前端框架&#xff0c;使用vue指令时需要导入vue.js文件&#xff1b;vue的常用指令有以下这些&#xff1a; v-bind、v-model&#xff1a;双向绑定数据、链接 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8">&…