Redis底层原理 (持久化以及集群)集群工作原理(六)

Redis集群的节点通信原理 Redis集群搭建中,数据如何在节点分布的原理,下面来介绍一下节点之间是如何进行通信(节点握手) 在分布式存储中需要提供维护节点元数据信息的机制,所谓元数据是指:节点负责哪些数据,是否出现故障等状态信息。常见的元数据维护方式分为:集中式和P2P方式。Redis集群采用P2P的Gossip(流言)协议,Gossip协议工作原理就是节点彼此不断通信交换信息,一段时间后所有的节点都会知道集群完整的信息... 阅读详情

两个redis节点之间进行通信的时候,需要在客户端执行下面一个命令

127.0.0.1:7000>cluster meet 127.0.0.1:7001

如下图所示


意思很简单,让7000节点和7001节点知道彼此存在!
在握手成功后,两个节点之间会定期发送ping/pong消息,交换数据信息,如下图所示。

 

在这里,我们需要关注三个重点。

  • (1)交换什么数据信息

  • (2)数据信息究竟多大

  • (3)定期的频率什么样

到底在交换什么数据信息?
交换的数据信息,由消息体和消息头组成。
消息体无外乎是一些节点标识啊,IP啊,端口号啊,发送时间啊。这与本文关系不是太大,我不细说。

我们来看消息头,结构如下


注意看红框的内容,type表示消息类型。
另外,消息头里面有个myslots的char数组,长度为16383/8,这其实是一个bitmap,每一个位代表一个槽,如果该位为1,表示这个槽是属于这个节点的。

到底数据信息究竟多大?
在消息头中,最占空间的是myslots[CLUSTER_SLOTS/8]。这块的大小是:
16384÷8÷1024=2kb
那在消息体中,会携带一定数量的其他节点信息用于交换。
那这个其他节点的信息,到底是几个节点的信息呢?
约为集群总节点数量的1/10,至少携带3个节点的信息。
这里的重点是:节点数量越多,消息体内容越大。

消息体大小是10个节点的状态信息约1kb。

那定期的频率是什么样的?
redis集群内节点,每秒都在发ping消息。规律如下

  • (1)每秒会随机选取5个节点,找出最久没有通信的节点发送ping消息

  • (2)每100毫秒(1秒10次)都会扫描本地节点列表,如果发现节点最近一次接受pong消息的时间大于cluster-node-timeout/2 则立刻发送ping消息

因此,每秒单节点发出ping消息数量为
1+10*num(node.pong_received>cluster_node_timeout/2)

那大致带宽损耗如下所示,图片来自《Redis开发与运维》

 

【Redis】Redis底层原理(持久化 分布式锁) Redis虽然是个内存数据库,但是Redis支持RDB和AOF两种持久化机制,将数据写往磁盘,可以有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。 阅读详情

相关推荐

Redis 深度解析:数据结构、持久化与集群

Sentinel 是一个独立的进程,用于监控 Redis 主节点和从节点,当主节点故障时,Sentinel 会自动进行故障转移,将从节点晋升为新的主节点。Redis (Remote Dictionary Server) 是一种高性能的键值(Key-Value)内存数据库,以其丰富的数据结构、极低的延迟、出色的稳定性和强大的集群能力,在现代应用程序的开发中扮演着至关重要的角色。Quicklist: Redis 3.2 引入的混合数据结构,它是一个双向链表,链表的每个节点都是一个压缩列表 (ziplist)。

YS_Geo的博客 912

Redis集群--节点通信的过程(原理)

本文介绍Redis的Cluster(集群)的节点通信的流程。

IT利刃出鞘的博客 3824

网络攻防实验——网络监听

利用CAIN实现ARP监听。

Trieyes_of_feng的博客 3196

Redis Gossip广播通信 2.redis gossip的应用

Redis Cluster节点通信 Redis Cluster采用P2P的Gossip协议,每个节点与其他节点间不断通信交换信息,一段时间后节点信息一致,每个节点都知道集群的完整信息。 Redis Cluster通信过程: (1)集群中的每个节点都会单独开辟一个TCP通道,用于节点之间彼此通信,通信端口号在基础端口上加10000; (2)每个节点在固定周期内通过特定规则选择几个节点发送ping消息; (3)接收到ping消息的节点用pong消息作为响应。 集群中每个节点通过一定规则挑选要通信的节

阿拉斯加大闸蟹的博客 2912

LLC谐振变换器设计实战:从工作原理到参数设计与调试

开关电源设计是电力电子领域的核心技术,其核心目标在于提升效率与功率密度。为实现这一目标,软开关技术应运而生,它通过精心控制开关器件的电压与电流波形,使其在开通或关断瞬间实现零电压或零电流切换,从而从根本上降低开关损耗。LLC谐振变换器正是这一技术的杰出代表,它通过引入谐振网络,巧妙地实现了主开关管的零电压开关和次级整流管的零电流开关。这种拓扑结构在服务器电源、通信设备及高端显示驱动等要求高效率、高功率密度的应用场景中价值显著。本文将以半桥LLC为例,深入剖析其工作模态与增益特性,并系统阐述其参数设计、仿真验

weixin_34129696的博客 559

ctftools-all-in-one使用说明

OAEP (Optimal Asymmetric Encryption Padding) 是一种用于RSA加密的填充方案,目的是提高RSA加密的安全性。在CTF比赛中,如果模数N的两个因子比较接近,使用"费马分解(N)"可能会更快地得到结果;OAEP 是 RSA 的一种标准填充方式(在 PKCS#1 v2.0+ 中定义),因此这类题目本质上仍是 RSA 题,但。,导致你不能直接用常规的 RSA 解密公式 �=�� mod �m=cdmodN 得到有意义的明文。如果你在 CTF 中遇到 RSA 题,

2501_91682449的博客 1713

一文轻松搞懂redis集群原理及搭建与使用

今天早上由于zookeeper和redis集群不在同一虚拟机导致出了点很小错误(人为),所以这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助。 笔主这里使用的是Centos7.如果你碰到任何问题都可以来问我,留言或者加我微信:bwcx9393. 关于Linux的一些资料 链接:pan.baidu.com/s/1Opgu6kQe… 密码:8yk4 一 redis的安装 Redi...

weixin_34288121的博客 665

基于FPGA的示波器设计

ADC 、DAC、FPGA、LCD液晶、示波器

FDL_AQ的博客 1万+

redis持久化机制及原理

redis提供两种持久化策略 rdb 和 aof rdb持久化策略:按照规则 定时将内存冲的数据同步到磁盘 快照 redis 在指定情况下会触发快照 1、自己配置的规则 redis.conf中如下配置 save seconds changes save 900 1 --当900秒内 更改的key数量大于1 时 执行快照备份 save 300 10 --当300秒内 更改的key数量大于10 ...

zhangxm_qz的博客 557

手把手教你学SOME/IP「1.0•概述」

本文介绍了SOME/IP协议的基本概念和主要特点。SOME/IP全称为"Scalable service-Oriented MiddlewarE over IP",是一种面向服务的车载嵌入式通信协议,支持远程过程调用、事件通知等功能。文章指出SOME/IP是AUTOSAR标准的一部分,在车载以太网架构中处于应用层位置,负责服务调度和通信封装。协议具有可扩展性强、资源消耗低、兼容性好等优势,能满足汽车电子领域对实时性、可靠性的严格要求。同时,文章也说明了SOME/IP的正确书写规范,并解释

nihaoljq2010的博客 678

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

dvlinker的技术专栏 7165

【Redis】——持久化,高可用集群

文章主要介绍了Redis的持久化机制和集群高可用性策略。在持久化方面,详细阐述了RDB(Redis Database)和AOF(Append Only File)两种方式。RDB通过定期保存数据快照实现持久化,而AOF则记录所有写操作。文章还讨论了RDB的异步持久化原理,以及如何通过fork子进程减少对主进程的阻塞。在集群高可用性方面,文章介绍了主从集群的数据同步原理,包括全量同步和增量同步,以及哨兵机制的作用和原理,哨兵负责监控节点状态并在主节点故障时进行故障转移。此外,还探讨了分片集群的结构、散列插槽的

qq_45730261的博客 398

让 ABAP 再次优雅:全面认知 ABAP Development Tools for SAP HANA(ADT)与可运行示例

本文介绍了ABAP开发工具ADT(ABAP Development Tools for SAP HANA)的核心概念与价值。ADT是基于Eclipse的现代化ABAP集成开发环境,支持ABAP Platform、S/4HANA等后端开发,提供代码编辑、CDS数据建模、质量检查等全流程功能,相比传统SAP GUI具有显著优势。文章详细阐述了ADT与SAP HANA的关系、关键能力模块(如代码重构、CDS建模、质量管控等),并通过一个制造企业案例说明其实际应用场景。最后提供了ADT安装指南和一个完整的ABAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 669

5.Redis 集群 主从复制 哨兵

Redis Sentinel 是 Redis 提供的高可用解决方案,能够自动监控主节点和从节点的状态,并在主节点故障时自动进行故障转移。这一机制确保了 Redis 的高可用性,避免了人工干预的需求。主从复制是 Redis 提供的一种数据复制机制,允许一个主节点将数据复制到一个或多个从节点。在主从复制中,主节点负责处理写操作,而从节点则负责处理读操作,从而实现读写分离和负载均衡。

weixin_51052174的博客 2411

2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录

由于是本人的亲身经历,所以想通过付费专栏获得一些收益。扣除平台的抽成后,我会将最终收益的一半捐献给贫困山区助学基金。专栏内容: 1. 几十场笔试真题的原题纯净版与个人解答版。 2. 几十场面试实录,包含提问、解答与个人复盘建议。 3. 个人整理的知识点总结。 4. 求职准备、简历制作方面的建议。

w0shishabi的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Redis 原理及应用(2)--持久化方式、集群管理、事务及与Memcached的对比

在上一篇文章中,主要学习了一下Redis的5种数据结构的底层实现原理,在这一篇中,将介绍Redis的持久化方式,与Memcached的区别,Redis3.0的集群部署以及广泛的应用场景。 Redis持久化方式 redis默认创建16个数据库,通过select语句可以切换数据库。我们知道,Redis是一个内存数据库,在内存中以K-V形式来存储数据,但是它可以配置持久化选项来进行持久化,这也是Re

怕什么真理无穷, 进一寸有一寸的欢喜 1163

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

超全面Redis详解

目录一、Redis 是什么二、Redis 的特点和功能三、Redis 缓存的使用四、Redis 为什么能这么快五、Redis 缓存的淘汰策略六、Redis 持久化1.为什么需要持久化2.Redis 的持久化策略的两种方式3.RDB的特点4.AOF的特点5.项目中如何选择这两种方式七、Redis 高可用部分的主从复制八、Redis 哨兵的基本原理九、Redis缓存雪崩、穿透、击穿概念及解决办法一、Redis 是什么 Redis 是Remote Dictionary Server(Redis) 的

zxljsbk的博客 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Redis-redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?

面试题 redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? 面试官心理分析 redis 如果仅仅只是将数据缓存在内存里面,如果 redis 宕机了再重启,内存里的数据就全部都弄丢了啊。你必须得用 redis 的持久化机制,将数据写入内存的同时,异步的慢慢的将数据写入磁盘文件里,进行持久化。 如果 redis 宕机重启,自动从磁盘上加载之前持久化的一些数据就可以了,也许会丢失少许数据,但是至少不会将所有数据都弄丢。 这个其实一样,针对的都是 redis

qq_38261137的博客 1805

Redis基础原理

底层数据结构 Redis 解决哈希冲突的方式,就是链式哈希 ​ 如果一次性把哈希表 1 中的数据都迁移完,会造成 Redis 线程阻塞,无法服务其他请求。此时,Redis 就无法快速访问数据了。 为了避免这个问题,Redis 采用了渐进式 rehash。 简单来说就是在第二步拷贝数据时,Redis 仍然正常处理客户端请求,每处理一个请求 时,从哈希表 1 中的第一个索引位置开始,顺带着将这个索引位置上的所有 entries 拷贝到哈希表 2 中;等处理下一个请求时,再顺带拷贝哈希表 1 中的下

SlagSea 7472

Redis-redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

面试题 redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗? 面试官心理分析 在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有。有一些 redis 中间件,你读写 redis 中间件,redis 中间件负责将你的数据分布式存储在多台机器上的 redis 实例中。 这两年,redis 不断在发展,redis 也不断..

qq_38261137的博客 1033

Redis篇——Redis主从复制,详细的主从复制底层原理和Redis集群搭建以及集群宕机配置主机等技术点~

一、概念主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader)、后者称为从节点(slave/follower)。数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slaver以读为主默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或者没有从节点),但是一个从节点只能有一个主节点二、主从复制架构一般来说,搭建主从复制的集群至少需要4个Redis服务器,一主三从三、主从复制原理。

我热爱学习,也乐于分享。无论是科技前沿的洞见,还是生活中的小技巧,我都会在这里与你分享。我相信,知识就是力量,而分享则能让这份力量得到更好的传递。 1610

Redis高可用之持久化、主从复制、哨兵模式、集群

在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;

m0_67497257的博客 900

redis工作原理和架构

优势:内存速度 + 数据结构优化 + 单线程无锁设计 + 灵活持久化68。场景缓存:高频读请求加速(如页面缓存)7。实时计算:排行榜(ZSet)、去重统计(HyperLogLog)35。消息队列:List阻塞弹出、Stream多消费者组56。合理利用 Redis 需结合业务特点:例如高可用场景用哨兵+主从,海量数据用Cluster分片;性能敏感场景启用混合持久化,并监控内存淘汰策略。

hao_wujing的专栏 594

Redis的核心原理

Redis是一个开源的、基于内存的分布式key-value数据库,支持多种数据类型以及对数据的原子性操作,并且将数据缓存在内存中提升效率。本文首先介绍了Redis的特性、基本操作的数据类型以及适用的场景;接下来对Redis核心的原理进行解析,包括IO模型、内存数据的持久化机制、Redis事务以及内存管理等,了解Redis底层的设计理念以及实现机制;最后对于单机的Redis实例扩展到集群架构,介绍了主从复制、哨兵模式和cluster集群三种架构,以及各自的优缺点对比。

m0_50180963的博客 1312

Redis底层原理 (持久化以及集群)知识准备(五)

fork(函数)以及Redis集群槽点 fork函数介绍 fork系统调用用于创建一个新进程,称为子进程,它与进程(称为系统调用fork的进程)同时运行,此进程称为父进程。创建新的子进程后,两个进程将执行fork()系统调用之后的下一条指令。子进程使用相同的pc(程序计数器),相同的CPU寄存器,在父进程中使用的相同打开文件。 它不需要参数并返回一个整数值。下面是fork()返回的不同值。 ...

最近学习目标:MySQL,Redis 222

redis集群、数据结构、底层、算法等总结

Redis使用文档 一、redis集群模式说明 1、主从复制模式、哨兵模式、cluster高可用集群模式 主从复制模式 (1)工作原理 Slave从节点服务启动并连接到Master之后,它将主动发送一个SYNC命令。Master服务主节点收到同步命令后将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave从节点服务在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master主节点继续将所有已

weixin_37601506的博客 453
上一篇: Redis底层原理 (持久化以及集群)知识准备(五)
下一篇: Redis底层原理 (Redis集群架构演进)知识准备(七)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值