教学网站模板下载/福建seo优化

教学网站模板下载,福建seo优化,网站的建设是什么,青海营销型网站建设文章目录 拓扑一主一从相关问题 一主多从相关问题 树形主从结构相关问题 主从复制原理复制流程 psync 命令命令解析replicatonidoffset总结 运行流程 拓扑 若干个节点之间按照什么样的方式来进行组织连接 一主一从 都可以读,从节点可以帮主节点分担一部分的压力只…

文章目录

  • 拓扑
    • 一主一从
      • 相关问题
    • 一主多从
      • 相关问题
    • 树形主从结构
      • 相关问题
  • 主从复制原理
    • 复制流程
  • psync 命令
    • 命令解析
      • replicatonid
      • offset
      • 总结
    • 运行流程

拓扑

若干个节点之间按照什么样的方式来进行组织连接

一主一从

image.png

  • 都可以读,从节点可以帮主节点分担一部分的压力
  • 只有主节点能写
    解决了单点并发量不高和单点可能出现故障的情况

相关问题

  1. 写请求太多
    但是如果写请求太多,也会给主节点造成一些压力。
  • 此时我们可以通过关闭主节点的 AOF,只在从节点上开启 AOF 的方式降低主节点的压力
  • AOF 需要将数据写到硬盘上,而写硬盘比写内存要慢上不少,因此让主节点就只写内存,这样主节点能支持的并发量就更大了
  1. 数据丢失
    但是这种设定方式,有一个严重的缺陷:主节点一旦挂了,不能让他自动重启(如果自动创奇,此时没有 AOF 文件,就会丢失数据,进一步的主从结构,会把从节点的数据也给删了)

改进办法:当主节点挂了之后,就需要让主节点从从节点这里获取到 AOF 文件,然后再启动

一主多从

在实际开发中,读请求的数量是远远超过写请求的,此时我们就可以用一主多从的结构

image.png|570

  • 主节点上的数据发生改变,就会把改变的数据同时同步给所有的从节点

相关问题

  1. 网络带宽压力
    随着从节点个数的增加,同步一条数据,就需要传输多次,主节点的网络带宽要压力是很大的

解决办法:使用树形主从结构

树形主从结构

可以有效的缓解主节点网络带宽压力大的情况

image.png|518

  • 这样就把同步数据的网络压力,均摊到多个节点上了,主节点就不需要那么高的网络带宽了

相关问题

  1. 同步时间变长
    一旦数据进行修改了,同步数据的延时是比一主多从结构要长的,

主从复制原理

复制流程

image.png|405

  1. 先保存主节点的 IP 和端口(在一个变量中)
  2. 然后建立一个 TCP 连接(三次握手)
  3. 通过 ping 命令,验证主节点是否能够正常工作(站在应用程序角度)
    • 上面的 TCP 三次握手,验证的是通信双方能否正常读写数据,而不是能否正常工作(站在系统层面)
    • 检查路修好了没(三次握手);检查这辆车子是不是好的(ping
  4. redis 主节点如果开启了密码,就会触发“权限认证”

上面的都是准备操作,最关键的复制操作就是第五步和第六步

  • 同步数据集:相当于全量同步。在进行同步的一瞬间,一次性把所有的数据都给我
  • 命令持续复制:相当于增量同步。后续再有数据变化,继续进行同步

psync 命令

redis 提供了一个 psync 命令,完成数据同步的过程

  • 不需要我们手动执行,redis 服务器会在建立好主从同步关系之后,自动执行 psync
  • 从节点负责执行 pysnc,从节点从主节点这边拉取数据(从节点主动要,而不是主节点主动给)

语法格式为:

PSYNC replicationid offset

命令解析

replicatonid

  • replicationid:理解成复制 Id,是主节点在启动的时候生成的(从节点变成主节点的时候也会生成,下面有谈到)
    • 即使是同一个主节点,每次重启,生成的 replication id 都是不同的
    • 从节点和主节点建立了复制关系,就会从主节点这边获取到 replication id
    • 此处讨论的都是一个主节点,多个从节点。

我们可以通过 info 命令,获取到 replication id

info replication

image.png|472

  • 一般情况下,replid2 是用不到的

使用到 replid2 的情况

  • 有一个主节点 A,还有一个从节点 B。 A 生成 replid,B 获取到 A 的 replid
  • 如果 A 和 B 通信过程中出现了一些网络抖动,B 可能就会认为 A 挂了,于是 B 就会自己成为主节点,给自己生成一个 replid
  • 此时 B 也会记得旧的 replid,就是通过 replid2
  • 后续网络稳定了,B 还可以根据 replid2 重新回到 A 的怀抱
    • 需要手动干预。不过哨兵机制可以自动完成这个过程

offset

可以理解成偏移量,主节点和从节点上都会维护偏移量(整数)

  • 主节点上:主节点会收到很多的修改操作的命令,每个命令都要占据几个字节,主节点会把这些修改命令的字节数进行累加,就会得到一个逐渐变大的数字
  • 从节点上:描述了现在从节点这里的数据同步到哪里了
  • 如果从节点和主节点这里的偏移量一样,就说明同步完成了
  • 从节点(slave)每秒钟上报自身的复制偏移量给主节点

总结

replicationidoffset 共同描述了一个“数据集合

如果发现两个机器,replicationid 一样,offset 也一样,就可以认为这两个 redis 机器上存储的数据就是完全一样的

image.png|489

  • 主服务器看做银行总行,从服务器看做分行
    • 总行里面有很多客户,每个客户都有一个自己的账户,用 replicationid 表示账户,offset 表示订单数量
    • 比如张三的账户 replicationid123123,他此时转出 100 元,总行实时记录,订单数量 offset 为 1,随后同步给分行
  • 只要总行和分行里面,账户号 replicationid 和订单数量 offset 一样,就说明两边的数据是一样的,如果分行的订单数量 offset 比总行的少,那就说明还没同步完成

运行流程

image.png

  • FULLRESYNC:全量数据的同步

  • CONTINEU:增量数据的同步

  • ERR:比较老版本的 redis 服务器不支持 psync(可以用 sync,会阻塞 redis 服务器)

  • psync 这里可以从主节点获取全量数据,也可以获取一部分数据,主要就是看 offset 这里的进度

    • offset 写作 -1,就是获取全量数据
      • 获取所有数据是最稳妥的,但是会比较低效
    • offset 写具体的正整数,则是从当前偏移量位置来进行获取
      • 如果从节点之前已经从主节点这里复制过一部分数据了,就只需要把新的之前没复制过的数据搞过来即可

不是从节点索要哪部分,主节点就一定给哪部分。主节点会自行判断,看当前是否方便给哪部分数据,不方便就只能给全量数据了


什么时候进行全量复制?

  1. 首次和主节点进行数据同步
  2. 主节点不方便进行部分复制的时候

什么时候进行增量复制?

  • 从节点之前已经从主节点上复制过数据了。因为网络抖动或者从节点重启了,从节点需要重新从主节点这边同步数据,此时看看能不能只同步一笑部分(大部分数据都是一致的)
    **

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

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

相关文章

[RoarCTF 2019]Easy Calc-3.23BUUCTF练习day5(2)

[RoarCTF 2019]Easy Calc-3.23BUUCTF练习day5(2) 解题过程 查看源码 发现calc.php页面,访问一下 分析代码 首先获取$_GET[num]的值并赋给变量$str。然后定义了一个黑名单数组$blacklist,包含了一系列被禁止的字符或转义字符,如空格、制表…

阻塞队列:原理、应用及实现

阻塞队列:原理、应用及实现 什么是阻塞队列以生产消费者模型形象地理解阻塞队列阻塞队列实现生产消费者模型模拟实现阻塞队列实现生产消费者模型 什么是阻塞队列 阻塞队列是一种特殊且实用的队列数据结构,它同样遵循 “先进先出” 的原则。与普通队列不…

【开源宝藏】30天学会CSS - DAY5 第五课 脉冲动画

以下是一个完整的渐进式教程,拆解如何用 HTML CSS 构建“Pulsar”水波脉冲动画。通过阅读,你将理解每个核心属性与关键帧如何配合,让一个小圆不断散发动态波纹,并且文字始终停留在圆心。 第 0 步:项目概览 文件结构示…

2060 裁纸刀

2060 裁纸刀 ⭐️难度:简单 🌟考点:2022、规律、思维 📖 📚 import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N 100010…

python学习笔记--实现简单的爬虫(一)

任务:爬取豆瓣最受欢迎的250个电影的资料 链接:豆瓣电影 Top 250 用浏览器打开后,使用F12或鼠标右键--检查,查看网页的源代码,分析网页结构,如下图所示: 分析后得知: 1.电影名位于…

Cursor+Claude-3.5生成Android app

一、Android Studio下载 https://developer.android.com/studio?hlzh-tw#get-android-studio 等待安装完成 二、新建工程 点击new project 选择Empty Activity 起一个工程名 当弹出这个框时 可以在settings里面选择No proxy 新建好后如下 点击右边模拟器&#xff0c…

Java EE(15)——网络原理——TCP协议解析一

一.确认应答/(确认)序列号 接收方接收到数据后,向发送方返回一个确认信号(ack),告诉发送方数据被成功接收。ACK报文段只是作为确认使用的,一般来说不携带应用层数据(载荷),也就是说只有报头部分。但有可能…

C#单例模式

单例模式 (Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化对个对象,一个最好的办法就是,让类自身负责保护它的唯一实例。这个类可以保证没…

NO.55十六届蓝桥杯备战|排序|插入|选择|冒泡|堆|快速|归并(C++)

插⼊排序 插⼊排序(Insertion Sort)类似于玩扑克牌插牌过程&#xff0c;每次将⼀个待排序的元素按照其关键字⼤⼩插⼊到前⾯已排好序的序列中&#xff0c;按照该种⽅式将所有元素全部插⼊完成即可 #include <iostream> using namespace std; const int N 1e5 10; …

【Oracle资源损坏类故障】:详细了解坏块

目录 1、物理坏块与逻辑坏块 1.1、物理坏块 1.2、逻辑坏块 2、两个坏块相关的参数 2.1、db_block_checksum 2.2、db_block_checking 3、检测坏块 3.1、告警日志 3.2、RMAN 3.3、ANALYZE 3.4、数据字典 3.5、DBVERIFY 4、修复坏块 4.1、RMAN修复 4.2、DBMS_REPA…

计算机网络高频(二)TCP/IP基础

计算机网络高频(二)TCP/IP基础 1.什么是TCP/IP⭐⭐ TCP/IP是一种网络通信协议,它是互联网中最常用的协议之一。TCP/IP有两个基本的协议:TCP(传输控制协议)和IP(互联网协议)。 TCP(Transmission Control Protocol,传输控制协议)是一种可靠的、面向连接的协议。它负…

【蓝桥杯】12111暖气冰场(多源BFS 或者 二分)

思路 这题可以用BFS做&#xff0c;也可以用二分来做。 用二分这里只提供一个思路&#xff1a;对时间来二分查找&#xff0c;check函数就是检查在特定的时间 t 0 t_0 t0​内每一个暖气炉的传播距离能否覆盖所有格子。 用BFS做&#xff1a; 由几个点开始向外扩散&#xff0c;知道…

DeepSeek自学手册:《从理论(模型训练)到实践(模型应用)》|73页|附PPT下载方法

导 读INTRODUCTION 今天分享是由ai呀蔡蔡团队带来的DeepSeek自学手册&#xff1a;《从理论&#xff08;模型训练&#xff09;到实践&#xff08;模型应用&#xff09;》&#xff0c;这是一篇关于DeepSeek模型训练、应用场景及替代方案的综合指南文章&#xff0c;主要介绍了Deep…

QT软件匠心开发,塑造卓越设计服务

在当今这个数字化飞速发展的时代&#xff0c;软件已经成为我们生活中不可或缺的一部分。而QT&#xff0c;作为一款跨平台的C图形用户界面应用程序开发框架&#xff0c;凭借其强大的功能和灵活性&#xff0c;在众多软件开发工具中脱颖而出。我们深知&#xff0c;在软件开发领域&…

标贝科技入选2025年市级数据要素市场化配置改革“揭榜挂帅”名单

近日&#xff0c;山东省大数据局、青岛市大数据局公布2025年数据要素市场化配置改革“揭榜挂帅”名单。标贝科技联合崂山区电子政务和大数据中心申报的“政务热线通话录音数据价值挖掘与权益保护”项目成功入选。这一成果不仅彰显了标贝科技在数据领域的创新实力&#xff0c;更…

Flutter TextField 从入门到精通:掌握输入框的完整指南

目录 1. 引言 2. TextField 的基本用法 3. 主要属性 4. 自定义 TextField 样式 4.1 自定义边框与提示文本 4.2 增加前缀/后缀图标 4.3 只允许输入数字 4.4 表单验证系统 4.5 动态样式修改 4.6 防抖搜索&#xff08;Debounce&#xff09; 5. 结论 相关推荐 1. 引言…

MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!

目录 一、什么是 MyBatis-Plus 自动填充&#xff1f; &#x1f914;二、自动填充的原理 ⚙️三、实际例子&#xff1a;创建时间和更新时间字段自动填充 ⏰四、注意事项 ⚠️五、总结 &#x1f389; &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢…

arduino R4 SD卡读写测试

使用买来的 st7789LCD 显示器背面就带着一个 tf 卡槽&#xff0c;可以直接连接 tf 卡。使用 Sdfat 库就可以实现对 sd 卡的读写操作。这里尝试测试 sd 卡的读写功能。 LCD 显示器的初始化 //定义LCD的对象 Adafruit_ST7789 tft Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);tf…

【武汉·4月11日】Parasoft联合光庭信息研讨会|邀您共探AI赋能新机遇

Parasoft联合光庭信息Workshop邀您共探AI赋能新机遇 AI浪潮已至&#xff0c;你准备好了吗&#xff1f; 在智能网联汽车飞速发展的今天&#xff0c;AI技术正以前所未有的速度重塑行业生态。如何把握AI机遇&#xff0c;赋能企业创新&#xff1f; 4月11日&#xff0c;自动化软件…

防火墙带宽管理

拓扑 配置 [fw]interface GigabitEthernet 0/0/0 [fw-GigabitEthernet0/0/0]service-manage all permit [fw]interface GigabitEthernet 1/0/0 [fw-GigabitEthernet1/0/0]ip address 12.0.0.1 24 [fw]interface GigabitEthernet 1/0/1 [fw-GigabitEthernet1/0/1]ip ad…