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.mzph.cn/bicheng/71911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对象存储之Ceph

Ceph 对象存储概述 Ceph 是一个开源分布式存储系统,旨在提供高度可扩展、高度可用、容错、性能优异的存储解决方案。它结合了块存储、文件系统存储和对象存储的功能,且在设计上具有极高的可扩展性和灵活性。 在 Ceph 中,对象存储&#xff0…

Document对象

DOM4j中,获得Document对象的方式有三种: 1.读取XML文件,获得document对象 SAXReader reader new SAXReader(); Document document reader.read(new File("input.xml")); 2.解析XML形式的文本,得到document对象…

树莓集团南京产业园再布局:深入剖析背后逻辑

在产业园区蓬勃发展的当下,树莓集团在南京的产业园再布局行动备受瞩目。这一举措并非偶然,其背后蕴含着深刻且多元的战略逻辑。 一、顺应区域产业发展趋势 南京作为长三角地区的重要城市,产业基础雄厚且多元。近年来,南京大力推动…

Pytorch实现之脑电波图像生成

简介 简介:采用双GAN模型架构来生成脑电波与目标图像。 论文题目:Image Generation from Brainwaves using Dual Generative Adversarial Training(使用双生成对抗训练的脑电波图像生成) 会议:IEEE Global Conference on Consumer Electronics (GCCE) 摘要:表示通过无…

HTML解析 → DOM树 CSS解析 → CSSOM → 合并 → 渲染树 → 布局 → 绘制 → 合成 → 屏幕显示

一、关键渲染流程 解析 HTML → 生成 DOM 树 浏览器逐行解析 HTML&#xff0c;构建**DOM&#xff08;文档对象模型&#xff09;**树状结构 遇到 <link> 或 <style> 标签时会暂停 HTML 解析&#xff0c;开始加载 CSS 解析 CSS → 生成 CSSOM 将 CSS 规则解析为**…

剑指offer - 面试题11 旋转数组的最小数字

题目链接&#xff1a;旋转数组的最小数字 第一种&#xff1a;正确写法&#xff08;num[m]和nums[r]比较&#xff09; class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param nums int整型v…

Spring源码分析の循环依赖

文章目录 前言一、循环依赖问题二、循环依赖的解决三、整体流程分析 前言 常见的可能存在循环依赖的情况如下&#xff1a; 两个bean中互相持有对方作为自己的属性。   类似于&#xff1a; 两个bean中互相持有对方作为自己的属性&#xff0c;且在构造时就需要传入&#xff1a…

Docker 部署 Jenkins持续集成(CI)工具

[TOC](Docker 部署 Jenkins持续集成(CI)工具) 前言 Jenkins 是一个流行的开源自动化工具&#xff0c;广泛应用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;的环境中。通过 Docker 部署 Jenkins&#xff0c;可以简化安装和配置过程&#xff0c;并…

《Effective Objective-C》阅读笔记(中)

目录 接口与API设计 用前缀避免命名空间冲突 提供“全能初始化方法” 实现description方法 尽量使用不可变对象 使用清晰而协调的命名方式 方法命名 ​编辑类与协议命名 为私有方法名加前缀 理解OC错误模型 理解NSCopying协议 协议与分类 通过委托与数据源协议进行…

C++程序员内功修炼——Linux C/C++编程技术汇总

在软件开发的宏大版图中&#xff0c;C 语言宛如一座巍峨的高山&#xff0c;吸引着无数开发者攀登探索。而 Linux 操作系统&#xff0c;以其开源、稳定、高效的特性&#xff0c;成为了众多开发者钟爱的开发平台。将 C 与 Linux 相结合&#xff0c;就如同为开发者配备了一把无坚不…

数据库索引:缺点与类型全解析

在数据库的世界里&#xff0c;索引就像是一本书的目录&#xff0c;它能帮助我们快速定位到所需的数据&#xff0c;极大地提升查询效率。然而&#xff0c;就如同任何事物都有两面性一样&#xff0c;索引也并非完美无缺。今天&#xff0c;我们就来深入探讨一下索引的缺点以及常见…

【python】提取word\pdf格式内容到txt文件

一、使用pdfminer提取 import os import re from pdfminer.high_level import extract_text import docx2txt import jiebadef read_pdf(file_path):"""读取 PDF 文件内容:param file_path: PDF 文件路径:return: 文件内容文本"""try:text ext…

嵌入式八股文(五)硬件电路篇

一、名词概念 1. 整流和逆变 &#xff08;1&#xff09;整流&#xff1a;整流是将交流电&#xff08;AC&#xff09;转变为直流电&#xff08;DC&#xff09;。常见的整流电路包括单向整流&#xff08;二极管&#xff09;、桥式整流等。 半波整流&#xff1a;只使用交流电的正…

精选案例展 | 智己汽车—全栈可观测驱动智能化运营与成本优化

本案例为“观测先锋 2024 可观测平台创新应用案例大赛”精选案例&#xff0c;同时荣获IT168“2024技术卓越奖评选-年度创新解决方案”奖。 项目背景 近年来&#xff0c;中国汽车行业进入转型升级阶段&#xff0c;智能网联技术成为行业发展的核心。车联网、自动驾驶等技术的加速…

速通HTML

目录 HTML基础 1.快捷键 2.标签 HTML进阶 1.列表 a.无序列表 b.有序列表 c.定义列表 2.表格 a.内容 b.合并单元格 3.表单 a.input标签 b.单选框 c.上传文件 4.下拉菜单 5.文本域标签 6.label标签 7.按钮标签 8.无语义的布局标签div与span 9.字符实体 HTML…

【Python模块】——pymysql

pymysql是python操作mysql的标准库&#xff0c;可以通过pip install快速导入pymysql包操作数据库 使用pymysql操作mysql 简单demo import pymysql connect pymysql.connect(host"localhost",port3306,user"root",password"root",database&quo…

IP离线库助力破解网络反诈难题

毫秒级响应识别异常访问 IP离线库集成全球全量IP地址的详细信息&#xff0c;包括地理地址查询、运营商、经纬度、代理识别等多种维度数据。例如&#xff1a; 当用户账号频繁从北京、越南等多地IP登录时&#xff0c;系统将自动触发风险预警&#xff1b; 检测到访问IP为已知机…

lattice hdl实现spi接口

在lattice工具链中实现SPI接口通常涉及以下步骤: 定义硬件SPI接口的管脚。配置SPI时钟和模式。编写SPI主机或从机的控制逻辑。 展示了如何在Lattice工具链中使用HDL语言(例如Verilog)来配置SPI接口: lattice工程 顶层:spi_slave_top.v `timescale 1ns/ 1ps module spi_…

Spring 循环依赖解析与解决方案

文章目录 1. 什么是循环依赖&#xff1f;1.1 概念解析1.2 示例代码 2. 循环依赖的类型2.1 构造器循环依赖&#xff08;不可解决 ❌&#xff09;2.2 Setter 方式或 Autowired 方式的循环依赖&#xff08;可解决 ✅&#xff09; 3. 解决循环依赖的方式3.1 方式一&#xff1a;使用…

Cesium@1.126.0,创建3D瓦片,修改样式

第一步&#xff1a;添加3D建筑 Cesium.createOsmBuildingsAsync()这是一个异步方法&#xff0c;所以要写在一个异步函数里 创建一个函数 const create3DBuilding async (viewer) > {try {// 添加3D建筑const tileset await Cesium.createOsmBuildingsAsync();viewer.scen…