Redis-集群节点如何组成-从数据机构入手

Redis专题:了解Redis集群,这篇就够了 这部分主要是打基础,把集群的一些基本概念介绍以下,同时介绍了Redis Cluster的物理结构和逻辑结构,通过实例与集群建立过程的说明,给大家一个比较直观的理解。通过上一节的内容,我们已经知道了Redis Cluster结构、设计理念以及从无到有创建一个集群,总体上来讲对于Redis Cluster有了一个初步的认识。本节将重点解析Redis Cluster数据分片的更多细节,帮助大家更好的理解与使用。 阅读详情

1、背景

  • 集群中的每个节点都需要专门的数据结构来存储集群的状态和自身信息。
  • 分为clusterNode和 clusterState结构:
    –clusterNode记录了集群中的单个节点的状态
    – clusterState记录集群所有节点作为一个整体的状态

2、clusterNode结构

typedef struct clusterNode {
    //节点创建时间
    mstime_t ctime;
    //节点id
    char name[REDIS_CLUSTER_NAMELEN];
    //节点的ip和端口号
    char ip[REDIS_IP_STR_LEN];
    int port;
    //节点标识:整型,每个bit都代表了不同状态,如节点的主从状态、是否在线、是否在握手等
    int flags;
    //配置纪元:故障转移时起作用,类似于哨兵的配置纪元
    uint64_t configEpoch;
    //槽在该节点中的分布:占用16384/8个字节,16384个比特;每个比特对应一个槽:比特值为1,则该比特对应的槽在节点中;比特值为0,则该比特对应的槽不在节点中
    unsigned char slots[16384/8];
    //节点中槽的数量
    int numslots;
    …………
    //还包含节点连接、主从复制、故障发现和转移需要的信息
} clusterNode;
  • clusterNode 结构保存了 一个节点的当前状态,包括创建时间、节点 id、ip 和端口号等。
  • 每个节点都会用一个 clusterNode 结构记录自己的状态,并为集群内所有其他节点都创建一个 clusterNode 结构来记录节点状态。

3、clusterState

  • clusterState 结构保存了在当前节点视角下,集群所处的状态。
  • 除下列代码展示外,clusterState 还包括故障转移、槽迁移等需要的信息
typedef struct clusterState {
    //自身节点
    clusterNode *myself;
    //配置纪元
    uint64_t currentEpoch;
    //集群状态:在线还是下线
    int state;
    //集群中至少包含一个槽的节点数量
    int size;
    //哈希表,节点名称->clusterNode节点指针
    dict *nodes;
    //槽分布信息:数组的每个元素都是一个指向clusterNode结构的指针;如果槽还没有分配给任何节点,则为NULL
    clusterNode *slots[16384];
    …………
} clusterState;
springboot整合redis集群 深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。启动多个redis,其他从属redis通过slaveofIP号端口号绑定主redis,只有主redis可以写数据,其他从redis只能读取数据,同时自动会进行数据同步。2.启动命令,这里使用的window搭建的。一、编写redis.conf。... 阅读详情

相关推荐

从涡流求解器到瞬态场:Maxwell 3D里无线充电仿真,选对求解器能省一半计算时间

本文深入探讨了Maxwell 3D在无线充电仿真中涡流求解器与瞬态求解器的选择策略,帮助工程师优化计算效率与精度。通过对比分析两种求解器的适用场景、性能差异及实战技巧,揭示如何根据频率特性、材料非线性和动态过程需求做出精准选择,可节省高达50%的计算时间。特别针对3D线圈模型的无线充电系统设计提供了专业建议。

weixin_26861329的博客 230

Redis(源码剖析):---集群之集群数据结构(clusterNode、clusterLink、clusterState、CLUSTER MEET命令的实现)

一、struct clusterNode clusterNode结构保存了一个节点的当前状态,比如节点的创建时间、节点的名字、节点 当前的配置纪元、节点的IP地址和端口号等等 每个节点都会使用一个clusterNode结构来记录自己的状态,并为集群中的所有其他节点(包括主节点和从节点)都创建一个相应的clusterNode结构,以此来记录其他节点的状态: struct clusterNode { //创建节点的时间 mstime_t ctime; //节点的名字,由40 个

m0_46405589的博客 584

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7275

redis搭建集群模式、Cluster模式(6节点,3主3从集群模式,添加删除节点)

linux部署redis集群(6节点,3主3从集群模式)

MssGuo的博客 7152

vit的cam和注意力图: VIT模型的可解释性

VIT的热力图怎么画

YI_SHU_JIA的博客 1万+

Openclaw 附录B 常用Skills清单

核心作用支持URL、网页、PDF、图片、音频和YouTube视频的摘要与字幕提取,由OpenClaw创始人@steipete开发的官方内置Skill。安装⚠️说明:原推荐的summarize未在ClawHub验证到,YouTube字幕提取功能已内置于summarize中。使用场景“提取这个2小时Next.js教程视频的核心代码逻辑,按章节整理成学习笔记”推荐指数:⭐⭐⭐⭐。

Maynor的博客 857

Redis-13-Redis的集群和分布式

文章目录1:什么是集群2:制作集群6个节点1:环境说明2:复制六个redis节点3:启动六个节点4:将六个节点合成一个集群5:采用集群策略连接,设置数据会自动切换到相应的写主机6:通过 cluster nodes 命令查看集群信息3:什么是slots4:在集群中录入值5:查询集群中的值6:故障恢复7:集群的Jedis开发 1:什么是集群 Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。 Redis 集群通过分区(par

苍煜 1451

第1讲|AI产品经理全景图谱:不是“会用AI工具”,而是能对AI产品结果负责

本文从岗位本质出发,系统拆解 AI 产品经理的职责、岗位类型与能力模型,帮助读者理解 AI PM 与传统 PM 的核心差异,明确自己适合的转型方向,并建立“对 AI 产品结果负责”的产品认知。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1014

Redis集群模式

1、集群,即 Redis Cluster, 是Redis 3. 0开始引入的分布式存储方案。2、集群由多个节点(Node) 组成,Redis 的数据分布在这些节点中。3、集群中的节点分为主节点和从节点;只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。

Liqi23的博客 594

【制作100个unity实战之2】实现一款简单的FPS游戏

你将学到: fps武器脚本 基础瞄准功能 僵尸敌人AI 巡逻范围 攻击间 搜寻半径 追击 枪声吸引周围的僵尸 击中僵直效果

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3550

【实践】VECTOR AUTOSAR创建SWC读写CAN信号

在AUTOSAR开发中最必要的功能就是读写CAN信号,本文通过一步步说明,介绍如何开发SWC来读写CAN信号,可以说在AUTOSAR中实现读写CAN信号的实践过程,是一个非常基础且典型的练习。在本篇文章阅读之前,推荐阅读AUTOSAR RTE介绍,本篇文章介绍了RTE的比较全面的介绍了AUTOSAR RTE。理解了RTE之后,才能对SWC的设计更加清楚。话不多说,接着上一篇内容VECTOR DaVinci从0到1搭建工程,此篇文章我们介绍如何在DaVinci Developer中开发SWC访问CAN信号。为

酒无忧的博客 1230

Redis集群架构(集群搭建,集群原理,集群运维)

Redis集群搭建及Redis集群原理

Java开发相关的学习笔记 1690

虚幻商城 Quixel 免费资产一键入库

在免费领取所有Megascans之后,我们只是有了获取 Quixel Megascans 资产的资格,但是没有入 Fab 库,本文将讲解通过脚本将 Quixel 所有资产入库 Fab。

一碗清深的博客 3283

Redis集群如何保证高可用?

Redis使用主从模式和集群模式来尽量保证缓存服务的高可用 1、前言 Redis是单线程的,可以通过在单机开多个Redis实例,避免CPU多核的浪费,但是单机仍然存在瓶颈。 Redis集群是Redis的分布式解决方案,当一个服务挂了可以快速的切换到另外一个服务,当遇到单机内存、并发等瓶颈时,常使用此方案。 集群的部署方式也就是Redis cluster,采用主从同步读写分离,类似Mysql的主从同步,Redis cluster支撑 N 个 Redis master node,每个master.

小熊猫的博客 2515

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Redis基础系列-集群模式

redis集群 docker部署redis

囚徒之困 1123

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Redis 哨兵模式、集群模式

前言 Redis 哨兵模式主要是为Redis主从同步架构服务的,有时候主节点宕机,需要哨兵进行监控、通知,选举。 哨兵是干什么用的? sentinel,中文名是哨兵。哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis master 和 slave 进程是否正常工作。 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。 故障转移:如果 master node 挂掉了,会自动转移到 slave node 上。 配置中心:如果

阳光大男孩!!!的博客 9842

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Redis 集群搭建

Redis 集群搭建 参考连接:https://www.cnblogs.com/frankdeng/p/9332618.html 1. 可能的问题 一般来说,要将 Redis 运用于工程项目中,只使用一台 Redis 是万万不能的,原因: 从结构上,单个 Redis 服务器会发生_单点故障_,并且一台服务器需要处理所有的请求负载,压力较大(容错性)。 从容量上,单个 Redis 服务器内存容量有...

cheng_cuo_tuo的博客 993

redis集群详解

集群讲解: 主从集群:主从结构的redis由主节点负责读写操作,从节点负责读操作。通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样...

weixin_44585470的博客 494

Redis集群架构所产生的问题及如何处理

如果Redis是单节点部署的话,那如果Redis在那种高并发的环境下突然挂掉了,那基本上就玩完了,就算Redis对数据做了持久化,Redis重启之后要去恢复数据的话估计也要花费很久的时间,这样也极大的影响了项目的运行因此在那种高并发的环境下,一般对于Redis的部署都是集群部署的,以此来保证高可用Redis的高可用架构一共分为三种—主从、哨兵、Redis Cluster,它们虽然能够保证Redis的高可用,但是在使用的过程中还是会存在一定的问题对于Redis集群如何进行搭建,可以看下这篇文章 : Redis

小年的博客 1182

集群Redis

提示:本文主讲两种redis数据同步形式,1.主从复制配置 2.集群配置。

weixin_49278803的博客 430

redis集群方案

redis集群方案

tiantian929的博客 1213

redis--集群

Redis 集群是一种用于分布式存储和管理数据的解决方案,它允许将多个 Redis 实例组合成一个单一的逻辑数据库,提供更高的性能、容量和可用性。

weixin_43903745的博客 999

Redis 哨兵集群实现高可用

Redis 哨兵集群实现高可用哨兵的介绍sentinel,中文名是哨兵。哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能:集群监控:负责监控 redis ...

田维常 558

Redis(三十二)集群:集群中如何执行命令与重新分片原理

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。《Java高级面试》《Java高级架构知识》《算法知识》《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!《算法知识》[外链图片转存中…(img-xN1uewRD-1713378899692)]《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84003630的博客 358

Redis Cluster集群的实现原理

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!成功只会留给那些有准备的人!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》

2401_83915450的博客 837
上一篇: Redis-集群节点间的五种消息类型-区分
下一篇: Redis-集群中有多少个节点-极限分析
酱油瓶啤酒杯
博客等级 码龄8年 35粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值