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

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. 反客为主

复制原理和工作流程

复制的缺点

相关文章:

  • Rust学习总结之-枚举
  • 半导体晶圆精控:ethercat转profient网关数据提升制造精度
  • 2024中国信通院“集智”蓝皮书合集(附下载)
  • Windows-内核
  • 解决免费 PDF 发票打印痛点的实用工具
  • 回调函数的用法
  • AI大模型-提示工程学习笔记19-自我反思
  • HBuilder X安装教程(2025版)
  • C++ ⾼性能内存池
  • Spring 创建对象的流程
  • Rk3568驱动开发_点亮led灯(手动挡)_5
  • 文件上传漏洞学习笔记
  • 【SRC实战】搜索功能泄露订单号+用户定位
  • 自学c++之类、对象、封装
  • 【语法】C++的string
  • 解决应用程序 0xc00000142 错误:完整修复指南
  • 记录Liunx安装Jenkins时的Package ‘jenkins‘ has no installation candidate
  • 全星QMS软件系统:制造业质量管理的全面优化与创新研究
  • 开源基准测试模拟器:BlueROV2 水下机器人的控制(更改Z方向控制器)
  • JAVA面试常见题_基础部分_Dubbo面试题(上)
  • 印巴局势紧张或爆发军事冲突,印度空军能“一雪前耻”吗?
  • 空间站第八批科学实验样品返抵地球并交付科学家
  • 《探秘海昏侯国》数字沉浸特展亮相首届江西文化旅游产业博览交易会
  • 万达电影去年净利润亏损约9.4亿元,计划未来三年内新增25块IMAX银幕
  • “面具女孩”多次恐吓电梯内两幼童,当事女孩及家长道歉后获谅解
  • 国家发改委下达今年第二批810亿超长期特别国债资金,支持消费品以旧换新