当前位置: 首页 > article >正文

Redis|复制 REPLICA

文章目录

    • 是什么
    • 能干嘛
    • 怎么玩
    • 案例演示
    • 复制原理和工作流程
    • 复制的缺点

是什么

  • 官网地址:https://redis.io/docs/management/replication/
  • Redis 复制机制用于将数据从一个主节点(Master)复制到一个或多个从节点(Slave),以实现数据冗余、负载均衡和故障恢复。

在这里插入图片描述

  • 一句话:就是主从复制,master 以写为主,slave 以读为主,当 master 数据变化的时候,自动将新的数据异步同步到其他的 slave 数据库

能干嘛

  • 读写分离
  • 容灾恢复
  • 数据备份
  • 水平扩容支撑高并发

怎么玩

  • 配从(库)不配主(库):在 Redis 主从复制中,“配从不配主”是指只需要配置从节点(Slave)指向主节点(Master),而不需要配置主节点指向从节点。

    • 主节点的主要职责是处理写操作和数据的变更。主节点不需要知道从节点的存在,它只需要将自己的数据变更传播给所有连接的从节点。这种设计简化了主节点的逻辑,使其更专注于数据写入和同步。
    • 从节点是主动连接到主节点的,而不是主节点去连接从节点。从节点通过 SLAVEOF 命令或配置文件中的 slaveof 指令,明确指定自己要复制的主节点。这种设计使得从节点可以动态地加入或离开复制拓扑,而不影响主节点的运行。
  • 权限细节,重要

    • master 如果配置了 requirepass 参数,需要密码登录
    • 那么 slave 就要配置 masterauth 来设置校验密码,否则的话 master 会拒绝 slave 的访问请求
    • 在这里插入图片描述
  • 基本操作命令

    • info replication,可以查看复制结点的主从关系和配置信息
    • replicaof 主库IP 主库端口,一般写入进 redis.conf 配置文件内,重启后生效
    • slaveof 主库IP 主库端口
      • 每次与 master 断开之后,都需要重新连接,除非你配置进了 redis.conf 文件
      • 在运行期间修改 slave 节点的信息,如果该数据库已经是某个主数据库的从数据库,那么会停止和原主数据库的同步关系转而和新的主数据库同步,重新拜码头
    • slaveof no one,使当前数据库停止与其他数据库的同步,转成主数据库,自立为王

案例演示

  • 架构说明:

    • 一个 Master 两个 Slave,三台虚拟机,每台都安装 redis
    • 在这里插入图片描述
    • 拷贝多个 redis.conf 文件:
      • redis6379.conf
      • redis6380.conf
      • redis6381.conf
  • 小口诀:

    • 三台虚拟机需要能相互 ping 通且需要注意防火墙配置
    • 三大命令
      1. 主从复制:
        • replicaof 主库IP 主库端口
        • 配从(库)不配主(库)
      2. 改换门庭:slaveof 新主库IP 新主库端口
      3. 自立为王:slaveof no one
  • 修改配置文件细节操作

    1. 开启daemonize yes:让程序以守护进程(daemon)模式运行。守护进程是在后台独立运行的进程,不与任何终端关联,通常用于服务器或长时间运行的服务。在这里插入图片描述

    2. 注释掉 bind 127.0.0.1:在 Redis 配置文件 redis.conf 中,bind 参数用于指定 Redis 服务器监听的网络接口(IP 地址)。默认情况下,Redis 只绑定到 127.0.0.1,这意味着它只能接受来自本机的连接。注释掉后,Redis 会监听所有可用的网络接口(0.0.0.0),允许来自任何 IP 地址的连接,Redis 可以从其他机器访问,前提是防火墙或安全组允许。在这里插入图片描述

    3. protected-mode no:在 Redis 配置文件 redis.conf 中,protected-mode 是一个安全特性,用于保护 Redis 实例免受未授权访问。当你将 protected-mode 设置为 no 时,意味着禁用了这一保护模式。如果 protected-mode 设置为 yes(默认值),Redis 会进入保护模式。在保护模式下,如果 Redis 没有设置密码(requirepass)并且没有明确绑定到所有网络接口(bind 配置),Redis 只会接受来自 127.0.0.1(本地回环接口)的连接。这是为了防止 Redis 在没有适当安全配置的情况下暴露在外部网络中。在这里插入图片描述

    4. 指定端口在这里插入图片描述

    5. 指定当前工作目录,dir在这里插入图片描述

    6. pid文件名字,pidfile:在 Redis 配置文件 redis.conf 中,pidfile 参数用于指定 Redis 进程 ID(PID)文件的路径和名称。PID 文件是一个文本文件,其中包含 Redis 服务器进程的进程 ID(PID)。这个文件通常用于管理和监控 Redis 进程。在这里插入图片描述

    7. log文件名字,logfile:在 Redis 配置文件 redis.conf 中,logfile 参数用于指定 Redis 日志文件的路径和名称。Redis 会将运行时的日志信息(如启动信息、错误信息、调试信息等)写入该文件,方便排查问题和监控运行状态。在这里插入图片描述

    8. requiredpass:在 Redis 配置文件 redis.conf 中,requirepass 参数用于设置 Redis 的访问密码。启用密码后,客户端在连接 Redis 时必须提供正确的密码才能执行操作。这是一个重要的安全特性,用于防止未授权访问。在这里插入图片描述

    9. dump.rdb 名字在这里插入图片描述

    10. aof 文件,appendfilename在这里插入图片描述

    11. 从机访问主机的通行密码 masterauth,必须配置,从机需要配置,主机不用在这里插入图片描述

  • 常用 3 招

    1. 一主二仆
    2. 薪火相传
    3. 反客为主

复制原理和工作流程

复制的缺点


http://www.kler.cn/a/563452.html

相关文章:

  • python的列表和元组别再傻傻分不清啦
  • C# WinForm 中的事件驱动模型
  • Java 算法和数据结构 答案整理,最新面试题
  • 计算机毕业设计SpringBoot+Vue.js大创管理系统(源码+文档+PPT+讲解)
  • 大模型面试问题准备
  • 力扣(leetcode)每日一题 1472 设计浏览器历史记录 - 数组
  • 2025全新版Java多语言跨境电商系统
  • Spring Boot 中 @Transactional 注解全面解析
  • git 国内源
  • 第4章 4.5 查看EF Core生成的SQL语句
  • C# 单元测试 xUnit、NUnit 与 MTest
  • SOC-ATF 安全启动BL1流程分析(1)
  • 【课堂笔记】线性回归梯度下降的矩阵求导推导
  • redis-bitmap使用场景
  • Nacos + Dubbo3 实现微服务的Rpc调用
  • Vue组件间通信的方式
  • 毕业项目推荐:基于yolov8/yolo11的苹果叶片病害检测识别系统(python+卷积神经网络)
  • angular舒尔特方格
  • 医院HIS接入大模型:算力基础设施与训练能力的深度剖析与测算
  • Docker基础-常见命令