清远专业网站建设服务/网络培训平台

清远专业网站建设服务,网络培训平台,优化政府门户网站建设,小程序定制开发要多久Redis主从复制 Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品则为从服务器&#…

Redis主从复制

在这里插入图片描述

在这里插入图片描述
Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品则为从服务器(slave)。 只要主从服务器之间的网络连接正常,主从服务器两者会具有相同的数据,主服务器就会一直将发生在自己身上的数据更新同步给从服务器,从而一直保证主从服务器的数据相同。
一句话:就是主从复制,master以写为主,slave以读为主。当master数据变化的时候,自动将新的数据异步同步到其他slavve数据库。
主从复制的作用

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

利用docker搭建一主两从的redis集群

docker-compose.yml的配置信息

version: '3.8'
services:master:image: docker.1ms.run/library/redis:7.0.0container_name: redis-masterports:- "6379:6379"command: redis-server --protected-mode no --requirepass root  # 主节点密码slave1:image: docker.1ms.run/library/redis:7.0.0container_name: redis-slave1ports:- "6380:6379"command: - redis-server - --protected-mode no - --replicaof redis-master 6379 - --masterauth root   # 从节点连接主节点的密码- --requirepass root  # 从节点自身的密码(可选,但建议与主节点一致)slave2:image: docker.1ms.run/library/redis:7.0.0container_name: redis-slave2ports:- "6381:6379"command: - redis-server - --protected-mode no - --replicaof redis-master 6379 - --masterauth root - --requirepass root

其中在每个从节点上需要配置master主节点的密码,–masterauth 的参数指定。以及–replicaof指定主节点的地址

docker-compose up -d启动后
在这里插入图片描述
在master主节点上执行以下命令进入主节点的redis环境

docker exec -it redis-master redis-cli -a root

在redis从节点上执行以下命令进入从节点的redis环境

 docker exec -it redis-slave1 redis-cli -a root

进入redis集群后,可以执行info replication的命令查看节点的状态信息

info replication

主节点的信息
在这里插入图片描述
从节点的信息在这里插入图片描述
主从同步的演示,在主节点上写入值,从节点可以读取到相关的值
主节点写入值:
在这里插入图片描述
从节点读取值
在这里插入图片描述
在这里插入图片描述
从节点可以执行写命令么?
从节点不可以写

(error) READONLY You can't write against a read only replica.

在这里插入图片描述
第三个节点挂了,前两个节点还是正常的,再往主机写入多个值,第三个节点然后再启动,数据会同步过来么?
第三个节点挂了
在这里插入图片描述
往第一个节点写入多个值
在这里插入图片描述
查看第二个节点的数据,数据正常同步
在这里插入图片描述
启动第三个节点
在这里插入图片描述
查看第三个节点的数据信息,数据正常同步过来
在这里插入图片描述
主节点shutdown后,从节点是否会上位?

在这里插入图片描述
读取从机的值,数据并没有丢,身份也没有变
在这里插入图片描述
在这里插入图片描述
主机shutdown后,重启后主从关系还在吗?从机还能否顺利复制?
在这里插入图片描述
主节点再设置值
在这里插入图片描述
从节点再去读取值
在这里插入图片描述
某台从机down后,master继续,从机重启后他能跟上大部队么?答:能
除了从配置文件的角度设置持久有效的主从关系外,还可以通过命令salveof 主机ip以及端口号指定主机的挂载,但是临时有效,当redis重启中,主从关系将不复存在。
薪火相传的架构演示
类似于爷爷->爸爸-> 儿子的主从关系
slaveof 新主库IP 新主库端口
在这里插入图片描述
第三个节点选取第二个节点作为master节点
在这里插入图片描述
第一个爷爷级别的主节点信息变化
在这里插入图片描述
第二个中间爸爸级别的节点信息变化
在这里插入图片描述
中间的爸爸节点,仅仅是数据的同步方向的指定,仍然不可以执行写入操作的
在这里插入图片描述

上一个slave可以是下一个slave的master,slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻主master的写压力。
中途变更转向:会清除之前的数据,重新建立拷贝最新的。
反客为主
使用命令: slaveof no one
在这里插入图片描述
写入数据
在这里插入图片描述
主从复制原理和工作流程

  • salve启动,同步初请(slave启动成功连接到master会发送一个sync命令,slave首次全新连接master,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖清除
  • 首次连接,全量复制(master节点收到sync命令后会开始在后台保存快照(即RDB持久化,主从复制时会触发RDB),同时收集所有接收到的用于修改数据集命令缓存起来,master节点执行RDB持久化完成后,master将RDB快照文件和所有缓存的命令发送到所有slave,以完成一次完全同步。而slave服务在接收到数据库文件后,将其存盘并加载到内存中,从而完成复制初始化)
  • 心跳持续,保持通信(master发出PING包的周期,默认10s。repl-ping-replica-period 10
  • 进入平稳,增量复制(master继续将新的所有收集到的修改命令自动依次传递给slave,完成同步)
  • 从机下线,重连续传(master会检查backlog里面的offset,master和slave都会保存一个复制的offset还有一个masterId,offset是保存在backlog中的Master只会把已复制的offset后面的数据复制给slave,类似断点续传

主从复制的缺点

  • 复制延时,信号衰减
    在这里插入图片描述

  • master挂了,如何办?(默认情况下,不会在slave节点中自动重选一个master,那每次人工选举?? 无人值守安装成为刚需 哨兵模式

参考视频
Redis 集群架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898013.shtml

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

相关文章

R语言零基础系列教程-03-RStudio界面介绍与关键设置

代码、讲义、软件回复【R语言03】获取。 设置位置: 菜单栏 - Tools - Blobal Options 设置 通用设置 设置面板左侧General选项 版本选择: 一般只用一个版本即可 默认工作目录设置: 你希望RStudio打开时是基于哪个目录进行工作可以不设置, 因为脚本一般都是放置在特定项目路…

微信小程序刷题逻辑实现:技术揭秘与实践分享

页面展示: 概述 在当今数字化学习的浪潮中,微信小程序以其便捷性和实用性,成为了众多学习者刷题备考的得力工具。今天,我们就来深入剖析一个微信小程序刷题功能的实现逻辑,从代码层面揭开其神秘面纱。 小程序界面布局…

JVM--垃圾回收

垃圾回收的概念 垃圾回收主要针对的是堆中的对象,堆是一个共享的区域,创建的对象和数组都放在这个位置。但是我们不能一直的创建对象,也不是所有的对象能一直存放,如果不进行垃圾回收,内存迟早会耗尽,及时…

【教程】继承中的访问控制 C++

目录 简介public,protected 和 private继承中的 public,protected 和 private示例 简介 在 C 中派生类可以通过 public,protected 和 private 三种修饰符决定基类成员在派生类中的访问级别 public,protected 和 private 公有成…

【2025】基于python+django的驾校招生培训管理系统(源码、万字文档、图文修改、调试答疑)

课题功能结构图如下: 驾校招生培训管理系统设计 一、课题背景 随着机动车保有量的不断增加,人们对驾驶技能的需求也日益增长。驾校作为驾驶培训的主要机构,面临着激烈的市场竞争和学员需求多样化等挑战。传统的驾校管理模式往往依赖于人工操作…

要登录的设备ip未知时的处理方法

目录 1 应用场景... 1 2 解决方法:... 1 2.1 wireshark设置... 1 2.2 获取网口mac地址,wireshark抓包前预过滤掉自身mac地址的影响。... 2 2.3 pc网口和设备对接... 3 2.3.1 情况1:... 3 2.3.2 情…

go 安装swagger

1、依赖安装: # 安装 swag 命令行工具 go install github.com/swaggo/swag/cmd/swaglatest# 安装 gin-swagger 和 swagger 文件的依赖 go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files 2、测试 cmd中输入: swag -v 如果…

网络安全反渗透 网络安全攻防渗透

网络渗透防范主要从两个方面来进行防范,一方面是从思想意识上进行防范,另一方面就是从技术方面来进行防范。 1.从思想意识上防范渗透 网络攻击与网络安全防御是正反两个方面,纵观容易出现网络安全事故或者事件的公司和个人,在这些…

技术视界|构建理想仿真平台,加速机器人智能化落地

在近期的 OpenLoong 线下技术分享会 上,松应科技联合创始人张小波进行了精彩的演讲,深入探讨了仿真技术在机器人智能化发展中的关键作用。他结合行业趋势,剖析了现有仿真平台的挑战,并描绘了未来理想仿真系统的设计理念与实现路径…

环境配置 | 5分钟极简Git入门:从零上手版本控制

你是否刚接触Git?别担心!这篇指南将用最简单的步骤带你掌握Git核心操作,快速开启版本控制之旅!✨ 1.git在win10上的下载安装 1.1.下载git 打开官方网站 Git - Downloadshttps://git-scm.com/downloads ​ ​​ 1.2.git安装 …

计算机网络——DNS

一、什么是DNS? DNS(Domain Name System,域名系统) 是互联网的核心服务,负责将人类可读的域名(如 www.baidu.com)转换为机器可识别的 IP地址(如 14.119.104.254)。它像一…

SQLark 实战 | 如何从Excel、csv、txt等外部文件进行数据导入

数据导入导出是应用开发者在平时开发中最常用的操作之一,SQLark 里提供了方便的图形化界面来完成导入导出。本文先和大家分享如何从 Excel、csv、txt 等外部文件导入数据到数据库表中。 👉 前往 SQLark 官网:www.sqlark.com 下载全功能免费版…

钉钉(excel)能让表格中不是‘北京’的字符串自动加亮显示(方便查看)以及隔行填充严颜色是斑马色(方便查看)嘛

在钉钉在线表格中,虽然功能相对Excel有所简化,但仍然可以通过条件格式实现对特定内容的高亮显示。以下是具体步骤: 一、在钉钉在线表格中设置条件格式 1. 打开钉钉在线表格 登录钉钉,进入“钉钉在线表格”应用。 打开你需要操作…

Windows根据文件名批量在文件夹里查找文件并复制出来,用WPF实现的详细步骤

项目前言 在日常工作和生活中,我们常常会遇到需要从大量文件中根据文件名批量查找特定文件并复制到指定位置的情况。手动一个个查找和复制文件不仅效率低下,还容易出错。使用 Windows Presentation Foundation (WPF) 可以创建一个用户友好的图形界面应用…

探索Maas平台与阿里 QWQ 技术:AI调参的魔法世界

摘要:本文介绍了蓝耘 Maas 平台在人工智能领域的表现及其核心优势,包括强大的模型支持、高效的资源调度和友好的操作界面。文章还探讨了蓝耘 Maas 平台与阿里 QWQ 技术的融合亮点及应用拓展实例,并提供了调参实战指南,最后对蓝耘 …

Python 实现大文件的高并发下载

项目背景 基于一个 scrapy-redis 搭建的分布式系统,所有item都通过重写 pipeline 存储到 redis 的 list 中。这里我通过代码演示如何基于线程池 协程实现对 item 的中文件下载。 Item 结构 目的是为了下载 item 中 attachments 保存的附件内容。 {"crawl_tim…

MySQL与Canal、RabbitMQ集成指南

MySQL 部分 1. 查看是否开启 binlog MySQL 8 默认开启 binlog。可以通过以下命令查看是否开启: SHOW VARIABLES LIKE log_bin;如果返回结果为 ON,则表示 binlog 已开启。 Variable_nameValuelog_binON 2. 若未开启 binlog,则需手动配置 …

X86 RouterOS 7.18 设置笔记十:上海电信IPTV使用msd_lite实现组播转单拨

X86 j4125 4网口小主机折腾笔记五:PVE安装ROS RouterOS X86 RouterOS 7.18 设置笔记一:基础设置 X86 RouterOS 7.18 设置笔记二:网络基础设置(IPV4) X86 RouterOS 7.18 设置笔记三:防火墙设置(IPV4) X86 RouterOS 7.18 设置笔记四…

LeetCode 解题思路 17(Hot 100)

解题思路: 找到链表中点: 使用快慢指针法,快指针每次移动两步,慢指针每次移动一步。当快指针到达末尾时,慢指针指向中点。递归分割与排序: 将链表从中点处分割为左右两个子链表,分别对这两个子…

「自动驾驶背后的数学:从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数

引言 自动驾驶技术是人工智能领域的一个重要应用,其核心在于如何将传感器数据转化为车辆控制指令。这一过程涉及大量的数学知识,包括线性函数、激活函数(如 ReLU)以及复合函数的嵌套使用。本文将深入探讨自动驾驶中的数学原理&am…