redis集群方案

redis集群方案有三种:主从复制、哨兵模式、redis分片集群

主从集群,用于解决单节点redis并发能力上限的,一般就是读写分离。一般一主节点负责写数据,多从节点负责读取数据,主节点写入数据之后,需要将数据同步到从节点中

主从同步分为两个阶段,一个是全量同步,一个是增量同步

全量同步是指从节点第一次与主节点建立连接使用的就是全量同步,流程如下

从节点携带自己的repication id和offset偏移量请求主节点同步数据,主节点会根据是否与从节点是同一个replication id来判断从节点是否是第一次请求,如果replication id不是同一个,说明是第一次同步,主节点会把自己的replication id和offset发送给从节点,让从节点与主节点信息保持一致。

于此同时主节点会执行bgsave,生成rdb文件,发送给从节点去执行,从节点会先把自己的数据清空,然后执行主节点的rdb文件,这样就会保持主从一致了。如果在rdb生成期间,有请求到达了主节点,主节点会以命令的方式记录到缓冲区,缓冲区是日志文件AOF,最后将日志文件发送给从节点,这样主节点和从节点完全一致了,后期在同步数据就都依赖这个日志文件了。

所以增量同步指的是,从节点重启后,数据不一致,从节点请求主节点同步数据,主节点判断不是第一次请求后获取从节点的offset值,然后主节点从命令日志AOF中获取offset值之后的数据,发送从节点数据同步。

哨兵模式是用来解决redis高并发高可用问题的。哨兵模式可以实现主从集群的自动故障恢复,里面包含对主从服务的监控、自动故障恢复、通知等功能。主节点故障,哨兵Sentinel会从新从从节点中选取主节点,故障恢复后也是新的master为主节点。并且集群发生故障后,Sentinel会将最新信息推送给Redis客户端。

一般不会做分片集群,因为分片集群维护起来比较麻烦,集群之间的心跳检测和数据通信会消耗大量的网络宽带,也没法使用lua脚本和事务。所以项目中一般都是1主1从加哨兵模式。一般单节点不超过10G内存。redis内存不足可以给不同的微服务分配独立的redis主从节点。

redis主从加哨兵模式,非常少见的情况下会出现脑裂现象。比如说网络原因,redis的主节点从节点和哨兵处于不同的网络分区,哨兵没感知到主节点的心跳,重新选举主节点,这样就有两个主节点,这就是脑裂现象。这样导致客户端在旧主节点写数据,新节点无法同步数据。网络恢复后,旧的主节点降级为从几点,新的主节点同步数据到从节点,会导致大量的数据丢失。解决问题,可以在redis中设置,首先至少有一个从节点才能同步数据,然后设置主从数据复制和同步的延迟间,达不到请求就拒绝请求,避免数据丢失

redis分片集群解决的是海量存储问题,及群众有很多的主节点,每个主节点负责保存不同的数据,并且可以每个主节点分配多个从节点,增加集群的高并发能力。同时主节点间互相检测彼此的健康状态,客户端请求访问集群任意节点最终都会被发送到正确节点,原理主要是redis引入了哈希槽的概念

redis集群中有16384个哈希槽,集群每个主节点都绑定了一定范围的哈希槽范围,每个key通过CRC16校验后对16384取模来决定放哪个哈希槽,通过哈希槽找到对应的节点进行存储,查询的时候也是同样的方式来定位。

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

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

相关文章

2024年世界听力日活动的主题是什么?

改变思维模式:让所有人的耳和听力保健成为现实! Let’s make ear and hearing care a reality for all! 据 世界卫生组织 报道:在全球范围内,超过 80% 的耳和听力保健需求仍未得到满足 ; 未得到解决的听力损失每…

Spring Boot整合Elasticsearch实现高效全文搜索

在现代应用程序中,对于大量数据的高效管理和快速检索是至关重要的。Elasticsearch(以下简称ES)作为一款开源的全文搜索引擎,为开发者提供了强大而灵活的搜索解决方案。本文将介绍如何通过Spring Boot框架整合Elasticsearch&#x…

2024第六届中国济南国际福祉及残疾人用品展览会/失能护理展

龘龘龙年-第六届山东福祉展会-将于5月27-29日在济南黄河国际会展中心举办; 一、引言 2024年,中国龙年,龙象征着力量、繁荣与希望。在这个特殊的年份,一场备受瞩目的盛会即将拉开帷幕。2024年第六届中国(济南&#xf…

CrossOver虚拟机软件功能相似的软件

与 CrossOver 功能相似的软件有: Wine:Wine 是一款在 Unix 和 Unix-like 系统(如 Linux、macOS)上运行 Windows 应用程序的兼容层。与 CrossOver 类似,Wine 通过模拟 Windows 的 API 来实现应用程序的兼容性。它支持大…

FPGA_简单工程_VGA显示驱动器

一 理论 使用640*48060显示模式,将数字信号转换位模拟信号,经由VGA进行显示。 使用3GM723,3路高清视频编码芯片。 3GM7123编码芯片: 该芯片的主要功能是将RGB888的颜色数据转换成模拟的电压信号,然后进入到VGA接口的…

常见的物联网操作系统介绍

物联网(Internet of Things,IoT)是指将各种物理设备、车辆、家用电器、工业设备等通过网络连接起来,实现数据交换和通信的技术。物联网操作系统是管理这些设备并使其能够相互通信的软件平台。以下是一些常见的物联网操作系统&…

力扣:455. 分发饼干

贪心解法思路: 1.先把两个数组按顺序遍历好,之后用最大的饼干来喂最大的胃口,如果最大的饼干不能喂饱最大的胃口,就除去这个最大的胃口,在剩下的为胃口中找最大的胃口来进行比对。这题主要历用了通过局部的优解&#…

免费文字转语音工具,一款优秀且永久免费的文字转语音工具,同时拥有多种类型男声女声,支持多国语言转换,支持语速调节和下载!

一、软件简介 该工具只有一个功能,就是将输入框内的纯文本内容转换为指定语言的音频,并且可以自由调节语速及音色(男声/女声),其内置了多种语音包,包含男声、女声、普通话、粤语以及方言,并且支…

【Linux】基本命令(下)

目录 head指令 && tail指令 head指令 tail指令 find指令 grep指令 zip/unzip指令 tar指令 时间相关的指令 date显示 1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下&…

vue3-内置组件-Suspense

Suspense (实验性功能) <Suspense> 是一项实验性功能。它不一定会最终成为稳定功能&#xff0c;并且在稳定之前相关 API 也可能会发生变化。 <Suspense> 是一个内置组件&#xff0c;用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌…

golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么?

golang select两个channel性能稳定&#xff0c;三个channel时性能会发生抖动&#xff0c;为什么&#xff1f; 答题思路 select —> 让 Goroutine同时等待多个 Channel 可读或者可写 —> Goroutine —> 调度器调度 —> 资源竞争 —> 不稳定、抖动 在 Go 中&#…

java md5工具类

在Java中&#xff0c;你可以使用java.security.MessageDigest类来生成MD5哈希。下面是一个简单的工具类示例&#xff0c;用于计算字符串的MD5哈希值&#xff1a; java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5…

Ainx-V0.2-简单的连接封装与业务绑定

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于Ainx系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列…

第6讲后端鉴权拦截器实现

后端鉴权拦截器实现 package com.java1234.interceptor;import com.java1234.util.JwtUtils; import com.java1234.util.StringUtil; import io.jsonwebtoken.Claims; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerI…

leetcode链表相关题目

文章目录 1.移除链表元素方法1&#xff1a;方法2 2.合并两个有序链表3.链表的中间节点方法1方法2 4.反转单链表方法1方法2 5.分割链表6.链表中的倒数第k个节点方法1&#xff1a;方法2: 7.环形链表的约瑟夫问题8.链表的回文结构9.相交链表方法1方法2&#xff1a; 10.环形链表11.…

专业课145+总分410+华南理工大学811信号与系统考研经验华工电子信息与通信,真题,大纲,参考书。

大家好&#xff0c;今年考研顺利上岸华南理工大学&#xff0c;专业课811信号与系统145&#xff08;只差一点满分&#xff0c;有点遗憾&#xff0c;专业我跟着Jenny老师复习投入时间和精力和数学差不多&#xff0c;华工专业课难度中等&#xff0c;是一个总分提高很好的突破口&am…

【JavaScript 漫游】【014】正则表达式通关

文章简介 JS 语言中的 RegExp 对象提供正则表达式的功能。本篇文章旨在对该对象的相关知识点进行总结。内容包括&#xff1a; 正则表达式概述RegExp 对象的实例属性RegExp 对象的实例方法字符串与正则表达式相关的实例方法正则表达式匹配规则 概述 正则表达式的概念 正则表…

第三节课[LangChain]作业

文章目录 前言实践搭建向量知识库 前言 本次作业虽然是第三节课作业&#xff0c;但是在第四次作业之后才完成&#xff0c;所以用的是经过自我认知微调的小助手权重。 使用**诡秘之主和宿命之环小说&#xff08;仅用于学习和研究&#xff09;**以及设定集、百度百科&#xff0c…

【开源】JAVA+Vue.js实现天然气工程业务管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、使用角色3.1 施工人员3.2 管理员 四、数据库设计4.1 用户表4.2 分公司表4.3 角色表4.4 数据字典表4.5 工程项目表4.6 使用材料表4.7 使用材料领用表4.8 整体E-R图 五、系统展示六、核心代码6.1 查询工程项目6.2 工程物资…

414. Third Maximum Number(第三大的数)

题目描述 给你一个非空数组&#xff0c;返回此数组中第三大的数 。如果不存在&#xff0c;则返回数组中最大的数。 问题分析 注意要查找的数是数组中第三大的数&#xff0c;相同大小的数算一个&#xff0c;对于此问题可以采用先将数组排序然后查找第三大的数采用排序的方式最…