redis中的集群模式

  主从复制、主从同步(解决高并发读的问题)

3f07f3e0845b4e09a70b73dd92e5feef.png

主从同步原理:

1.全量同步

b302f813312b4916b879b01bd810147c.png

slave(从节点)每次请求数据同步会带两个参数:replid和offset。

        replid:第一次请求同步时,replid和master的replid不一样,这时主节点就知道当前从节点是第一次来。就把自己的版本信息(包括master的replid)发送给从节点,从节点保存主节点的replid,下一次就发这个主节点的replid。就知道当前节点是哪个主节点的从节点。

        注意:如果从节点不是第一次来了,主节点就不会发送RDB文件。而是通过repl_backlog文件去同步数据。

        offset:从节点每次同步信息,就会维护一个偏移量offset。比如说这次从节点保存到了第50条数据,offset就为50。主节点的信息不断再更新。下次再来同步的时候,发现主节点中的offset是80,说明这次我们就需要同步50-80的数据了!

2.增量同步

cf6ab2e363914bb2860fd0d3ee7796ea.png

869c63531a6145328bdceab3c7fe0486.png

 哨兵模式(解决高可用)、集群脑裂

哨兵的作用

ea19bbc8d149413d855eac6c1fe5df79.png哨兵如何选择新的主节点

f2b659f2920e46d99dfa81d71d3d91ce.png

说明:

1.判断主节点和从节点断开时间长短,如果某个从节点断开时间很长,就不会被选为主节点。(断开时间越长,从节点丢失数据越多)

2.slave-priority可以在配置文件中设置

3.offset值越大代表当前从节点越接近主节点的数据。

脑裂问题

487d2a085a3c4fac80d853abe0f2a372.png

例:现在由于网络原因,哨兵监测不到主节点了。就会从剩余从节点中选取一个作为主节点。但是原来的主节点没有宕机,RedisClient连接的还是老的主节点。这样就出现了两个主节点!现在客户端连接的是老的主节点,还会持续往里面写入数据,但是从节点已经同步不了数据了!

d5d8b2b8d55d4eddb76036479163a9a4.png

现在网络恢复了,哨兵会将老的主节点降级为从节点。并且把新的主节点中的数据同步给它,而它之前的数据会被清空!!!客户端写入的数据就丢失了。

解决方案

配置参数

1.第一个参数min-replicas-to-write表示:当客户端写入数据时,这个主节点至少要有一个从节点。才能接受客户端的数据,否则直接拒绝请求。

2.min-replicas-max-lag:主从数据同步延迟

小结

0781ccf5e6ec4894804e7fa5642edf90.png

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

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

相关文章

线性系统(一)

线性系统(一) 1.什么是线性系统2.高斯消元法3.高斯-约旦消元法4.线性方程组解的结构 链接: 线性系统(二) 1.什么是线性系统 线性:未知数只能是一次方项 非线性: 同时,读者也可以通过作图来更直观地感受&…

TypeScript高级类型 在鸿蒙中的使用 Partial、Required、Readonly、Pick、Record

我的工程代码在这里&#xff0c;持续更新中 欢迎交流&#xff0c;谢谢 https://github.com/MartinLi89/WanHarmony Partial <Type> 新定义 一个类型&#xff0c;将所有属性变为可选的类. class TextTS {a: string "1"b: string "2"c: string &…

即插即用篇 | YOLOv8引入轴向注意力 Axial Attention | 多维变换器中的轴向注意力

本改进已集成到 YOLOv8-Magic 框架。 我们提出了Axial Transformers,这是一个基于自注意力的自回归模型,用于图像和其他组织为高维张量的数据。现有的自回归模型要么因高维数据的计算资源需求过大而受到限制,要么为了减少资源需求而在分布表达性或实现的便捷性上做出妥协。相…

ppt通过修改幻灯片母版修改页脚

修改幻灯片母版 幻灯片母版就可以了&#xff0c;就可以修改页脚

数学建模——农村公交与异构无人机协同配送优化

目录 1.题目 2.问题1 1. 问题建模 输入数据 ​编辑 2. 算法选择 3.数据导入 3.模型构建 1. 距离计算 2. 优化模型 具体步骤 进一步优化 1. 重新定义问题 2. 变量定义 3. 优化目标 具体步骤 再进一步优化 具体实现步骤 1. 计算距离矩阵 2. 变量定义 3. 约束…

基于Django的图书管理系统

文章目录 前言一、页面展示1.登录2.前端页面3.后端页面 二、项目上传&#xff08;1&#xff09;导入数据库&#xff08;2&#xff09;导入项目&#xff08;3&#xff09;数据库密码修改&#xff08;4&#xff09;进入网站 总结 前言 本网站调用Django编写了图书管理网站&#…

漫谈AI时代的手机

以chatGPT 为代表的大语言的横空出世使人们感受到AI 时代的到来&#xff0c;大语言模型技术的最大特点是机器能”懂人话“&#xff0c;”说人话“了。如同历史上任何一个革命性工具的出现一样&#xff0c;它必将对人类生活和工作产生巨大的影响。 在这里。我们不妨畅想一下啊AI…

返回分类信息(带层级)

文章目录 1.前端展示分类管理信息1.目前项目架构2.启动前后端项目1.启动mysql容器2.启动后端 renren-fast3.启动前端1.界面2.用户名密码都是admin 3.创建分类管理菜单1.菜单管理 -> 新增 -> 新增目录2.刷新3.能够新增菜单的原因是前端脚手架与renren-fast后端脚手架通信&…

Linux基础之僵尸进程与孤儿进程

目录 一、僵尸进程 1.1 什么是僵尸进程 1.2 为什么要有僵尸状态 1.3 观察我们的僵尸状态 1.4 关于僵尸进程的小Tip 二、孤儿进程 2.1 什么是孤儿进程 一、僵尸进程 1.1 什么是僵尸进程 在上一篇文章中&#xff0c;我们有提到过进程的死亡状态的概念&#xff0c;而我们的…

国内智能搜索工具实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

c++AVL树的模拟实现

前面对map/multimap/set/multiset进行了简单的介绍&#xff0c;在其文档介绍中发现&#xff0c;这几个容器有个 共同点是&#xff1a;其底层都是按照二叉搜索树来实现的&#xff0c;但是二叉搜索树有其自身的缺陷&#xff0c;假如往树中 插入的元素有序或者接近有序&#xff0c…

k8s 二进制安装 优化架构之 部署负载均衡,加入master02

目录 一 实验环境 二 部署 CoreDNS 1&#xff0c;所有node加载coredns.tar 镜像 2&#xff0c;在 master01 节点部署 CoreDNS 3&#xff0c; DNS 解析测试 4&#xff0c; 报错分析 5&#xff0c;重新 DNS 解析测试 三 master02 节点部署 1&#xff0…

什么是最大路径?什么是极大路径?

最近学习中&#xff0c;在这两个概念上出现了混淆&#xff0c;导致了一些误解&#xff0c;在此厘清。 最大路径 在一个简单图G中&#xff0c;u、v之间的距离 d ( u , v ) min ⁡ { u 到 v 的最短路的长度 } d(u,v) \min \{ u到v的最短路的长度 \} d(u,v)min{u到v的最短路的…

Redis 的主从复制

Redis 的主从复制 1、主从复制的实现2、主从复制的同步功能(PSYNC)2.1、部分重同步 本文讲解的Redis 主从复制机制&#xff0c;是基于 2.8及以后的版本而言&#xff0c;2.8以前的版本主从复制机制与此有所不同&#xff0c;请知悉。 Redis的复制功能分为 同步 (psync) 和 命令传…

vm16安装最新版本的ubuntu虚拟机,并安装g++的步骤记录

背景 低版本的ubuntu安装G一直不成功&#xff0c;干脆安装最新版的 官网下载 bing搜索ubuntu 下载完成 vm16新建虚拟机 一直下一步&#xff0c;安装完成 终端输入命令 sudo apt-get update ᅟᅠ       sudo apt install gcc ᅟᅠ      sudo apt install g

【C/C++】设计模式——工厂模式:简单工厂、工厂方法、抽象工厂

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

cdn引入vue的项目嵌入vue组件——http-vue-loader 的使用——技能提升

最近在写MVC的后台&#xff0c;看到全是jq的写法&#xff0c;但是对于用惯了vue的我&#xff0c;真是让我无从下手。。。 vue的双向绑定真的很好用。。。 为了能够在cdn引入的项目中嵌入vue组件&#xff0c;则可以使用http-vue-loader了 步骤1&#xff1a;下载http-vue-loader…

OPC-UA open62541 C++测试代码

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 这是之前写的open62541测试代码…

数据结构------二叉树经典习题1

博主主页: 码农派大星. 关注博主带你了解更多数据结构知识 1判断相同的树 OJ链接 这道题相对简单,运用我们常规的递归写法就能轻松写出 所以我们解题思路应该这样想: 1.如果p为空&#xff0c;q为空&#xff0c;那么就是两颗空树肯定相等 2.如果一个树为空另一棵树不为空那么…

ROS学习笔记(15)小车巡墙驾驶

0.前提 前一章我讲解了拉氏变换和PID&#xff0c;这一章我来讲解一下小车巡墙驾驶的理论和部分代码。 1.前情回顾 1.拉氏变换 拉普拉斯变换是要将时域问题转换成频域问题来处理。 2.PID控制器 转向角&#xff1a; 误差牺牲&#xff1a; 3.具体参看上一篇文章 2.巡墙驾驶…