redis cluster源码研究--增删节点

数据库之Redis运维手册(私人整理) 1、redis配置文件 #cat 8000.conf daemonize no #[yes/no]默认值no,该参数用于定制redis服务是否以守护模式运行。 pidfile /var/run/redis.pid #默认值/var/run/redis.pid,指定redis服务的进程号文件路径,以守护模式运行时需要配置本参数; port 8000 #默认值6379,指定redis服务... 阅读详情

  增删节点是指节点加入或退出redis cluster。

  redis cluster 提供了运维工具redis-trib.rb,使得增删节点变得简单和容易。


一、增节点

  1、加入 步骤:

(1)以cluster模式启动新节点(127.0.0.1:7000);

(2)用以下命令将新节点(空主节点)加入集群:

  ./redis-trib.rb add-node 127.0.0.1:7000 27.0.0.1:7006 

  其中第一个参数是新节点地址,第二参数可以是集群中任意一个节点地址。

就这样,把新节点(127.0.0.1:7000)加入了集群,但新节点没有负责任何哈希槽,可通过reshard给它分配哈希槽,本节不讨论如何reshard。

(3)如果要将新节点(空主节点)设为某主节点的从节点,可通过redis-cli连上新节点,然后用以下命令:

  redis 127.0.0.1:7006> cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e

  其中3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e是新节点的主节点id。


2、实现原理

  redis-trib.rb add-node命令实际发送了cluster meet命令给集群里某一个节点,该节点会将新节点加入它的集群配置,并与新节点进行握手,以确保可以连上新节点,最后通过定时发ping包给集群其他节点以告之有新节点的存在,其他节点也因此将新节点加入它的集群配置,并与新节点进行握手,以确保可以连上新节点。

  设置新节点A为某主节点B的从节点是通过cluster replicate命令实现,分析该命令源码,可知其原理是首先将自已设为该主节点的从节点,建立主从同步关系,然后通过ping包告诉集群其他节点,我是主节点B的从节点。

  以上变动,EpochConfig不会发生变化。


二、删除节点

1、从节点或空主节点删除步骤:

(1)简单通过以下命令:

  ./redis-trib del-node 127.0.0.1:7000 `<node-id>`

  其中第一参数可以是集群中任意一个节点地址,第二参数是要删除节点id。


2、非空主节点删除步骤:

(1)首先通过man failover使该节点变为从节点;

(2)然后按删除从节点步骤删除该节点。


3、实现原理

  通过分析redis-trib del-node命令可知:(1)首先发送cluster forget命令给除了删除节点外其他集群节点,它会使收到该命令的节点将待删除节点从集群节点配置中删除;

(2)如果待删除节点是空的主节点,会通过cluster replicate命令将它的从节点设为目前从节点数最少的主节点的从节点;(3)最后发送shutdown命令给待删除节点,使其自动关闭进程。

  以上变动,EpochConfig同样不会发生变化。


实战:Redis 集群模式(上) Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。 Redis 将所有的数据分为 16384 个 slots(槽),每个节点负责其中的一部分槽位,当有 Redis 客户端连接集群时,会得到一份集群的槽位配置信息,这样它就可以直接把请求命令发送给对应的节点... 阅读详情

相关推荐

FPGA+滨淞CCD实战:手把手教你搭建S7031/S10142成像电路(附避坑指南)

本文详细介绍了使用FPGA驱动滨淞CCD传感器(S7031/S10142)构建高精度成像系统的完整实战流程。内容涵盖核心器件选型、系统架构规划、电路板(焦面板与接口板)设计要点、FPGA Verilog逻辑实现,并提供了从电源管理、信号调理到数据采集的详细避坑指南,帮助读者从零搭建稳定可靠的成像电路。

weixin_29271263的博客 227

Redis 6.0删除节点

由于redis-trib.rb 在5.0之后的版本废弃了,相关功能都迁移到redis-cli上; 所以需要使用redis-cli客户但来执行节点删除任务; 命令:redis-cli --cluster del-node IP:PORT NODE-ID IP:PORT: 要删除的节点地址和端口; NODE-ID: cluster nodes查到的node-id, 必须和ip:port保持一致,防止误删;如果不一致会报错; 如:redis-cli --cluster del-node 127....

一条大河 2335

手把手教你用ESP32驱动MAX30102心率血氧传感器(含完整代码)

本文详细介绍了如何使用ESP32微控制器驱动MAX30102心率血氧传感器,构建智能健康监测系统。内容涵盖PPG原理、硬件连接、驱动配置、信号处理算法以及Web服务器数据可视化,提供完整代码实现,帮助开发者快速上手物联网健康设备开发。

weixin_29208077的博客 586

redis5.0 cluster删除一个节点

redis-cli -a password --cluster del-node ip:prot 删除点ID。2、然后清理此节点对应的nodes-3000.conf配置文件信息。1、kill掉这个节点的进程。

u012565458的博客 1148

保姆级教程:用SOEM主站搞定汇川SV660N伺服驱动器的EtherCAT通讯(附完整C代码)

本文提供了一份详细的SOEM主站与汇川SV660N伺服驱动器EtherCAT通讯的实战教程,涵盖环境搭建、状态机理解、PDO映射配置、CiA402状态机实战、实时性能优化及诊断调试等关键步骤,并附完整C代码示例,帮助开发者快速实现工业级EtherCAT控制。

weixin_28292761的博客 300

达梦7实时主备集群

达梦7实时主备配置实时主备数据环境说明配置主库配置 dm.ini配置dmmal.ini配置dmarch.ini配置dmwatcher.ini配置dmwatcher.ini以mount方式启动主库设置OGUID修改数据库为primary模式配置备库 在服务器部署过程中,通常搭建有数据库主备集群,用于防备数据库服务器产生问题影响数据正常,在此,我们分享一下在虚拟机环境中模拟搭建实时主备的数据守护模式。 在搭建环境之前,需用户确认主备DM7的数据库已安装完成,且版本一致,同时还应注意各实例所在主机的操作系统位数、

g360382的博客 1021

redis集群的维护(redis-cli --cluster 命令用法)

1、 --cluster create 创建集群 2、--cluster check检查集群 3、--cluster info 查看集群 4、--cluster fix 修复集群 5、--cluster rehard 迁移槽位 6、 --cluster rebalance 平衡集群 7、 --clusteradd-node 集群扩容 8、--cluster del-node 集群缩容 9、 --cluster call 在集群中执行命令 10、--cluste

cj_eryue的博客 1万+

dToF直方图之美

上面视频里如果你能看懂,那么就能理解对于dToF单点的测距问题,对于大部分的描述在AMS和ST里的手册都非常的详细,有疑问的可以后台来找我探讨,今天我们单纯从上层讨论成像的问题。作为dToF算法工程师,应该是对直方图敏感的,直方图的每个Count峰都会表征出问题,因为dToF的输出只有直方图,观察直方图能够逆推出dToF的很多东西,这也是大多数公司不愿意开放直方图和Raw data的缘故。以上是一个小面阵的分辨率,第一张是直方图,后面是基于直方图寻峰出来的成像ToF图,Peak图,以及噪声Noise图。

dream it possible 2989

redis 插入新节点 删除节点

一.插入节点 进入 cd /opt/install/redis-4.0.11 启动 make install PREFIX=/usr/local/redis-cluster/6384 修改redis.conf文件 进入到bin目录下启动redis ./redis-server redis.conf 插入节点 ./redis-trib.rb add-node 192.168.121.188:6384...

fx0909的博客 458

T分布和T检验的理解,Python代码实现T检验的计算

每天学习一点,每天进步一点。 声明:本人所有的原创,都是自己在学习过程中的记录点滴,不一定都是对的,肯定也会有一些错误的想法。所以大家看一看就好,不可尽信。当然也欢迎指出。 T分布 定义,有来自标准正态分布的样本X ~ N(0,1),和来自卡方n分布的Y ~ X2(n), 那么有 Z= X/√(Y/n) 成为符合自由度为n的T分布 我们用Python代码画一下他的图形 # 给一个自由度,返回这个自由度的卡方分布 X²(n) def product(n): n = np.ceil(n).astype

PY_smallH的博客 8485

【Unity小游戏】整整一个周末写一款《皇室战争 玩法》 的 即时战斗类 游戏Demo。两万多字游戏制作过程+解析

Unity游戏制作,本篇文章介绍了复刻皇室战争玩法的一个自制小游戏,共有该游戏的两万字教程加制作过程,欢迎品尝! 世界上没有绝对的公平,如果我们起点就比别人第一步,那就更需要比别人努力了。

努力前行,总会成为自己心中的那道光 12万+

redis cluster 4.0.9 之五: redis-trib.rb del-node

os: ubuntu 16.04 redis:4.0.9 ruby:2.4.4 ip规划 192.168.0.101 7000,7001,7002,7003 192.168.0.102 7000,7001,7002,7003 192.168.0.103 7000,7001,7002,7003 上一篇blog介绍了 add-node、reshard ,这篇blog介绍下 del-node 下面简单记...

一名数据库爱好者的专栏 1316

YOLOv13安装教程 手把手教你融合空间注意力机制(SAB)的RAB卷积模块 自动“聚焦”重要的特征 map指标提升8.96,准确率提升3.56

本文提出了一种改进的YOLOv13目标检测模型,通过引入RAB(残差注意力模块)显著提升了检测性能。实验结果显示,添加RAB模块后,mAP指标提升了8.96,准确率提高了3.56%。文章详细介绍了RAB模块的实现方法:1)采用多级残差连接增强特征提取能力;2)结合空间注意力机制(SAB)自动聚焦关键区域;3)通过1×1卷积实现通道维度压缩与恢复。同时提供了完整的模型移植方案,包括配置文件修改、任务处理代码调整以及模块实现细节,为YOLO系列模型的性能优化提供了有效参考。

FJN110的博客 646

redis-cluster集群安装及数据迁移

备注:图片因为格式都没有显示,本身是都有的,这里的IP 是随便写了个10.168.0.0代替所有需要用的IP。Redis集群介绍Redis真的是一备注:图片因为格式都没有显示,本身是都有的,这里的IP 是随便写了个10.168.0.0代替所有需要用的IP。个优秀的技术,它是一种key-value形式的NoSQL内存数据库,由ANSI C编写,遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、...

biaojian4425的博客 294

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

redis架构图_一分钟创建Redis生产集群

Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。Redis 将所有的数据分为 16384 个 slots(槽),每个节点负责其中的一部分槽位,当有 Redis 客户端连接集群时,会得到一份集群的槽位配置信息,这样它就可以直接把请求命令发送给对...

weixin_39847099的博客 191

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

惊呆了,竟然可以用这种方式秒建 Redis 集群?

作者|老王来源 |Java 中文社区前面我们讲了《Redis 性能优化的 13 条军规!》,其中最重要的一条就是使用 Redis 的集群功能,那么...

优快云资讯 1986

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

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

redis之三十一:实战:Redis 集群模式(上)

Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。 Redis 将所有的数据分为 16384 个 slots(槽),每个节点负责其中的一部分槽位,当有 Redis 客户端连接集群时,会得到一份集群的槽位配置信息,这样它就可以直接把请求命令发送给对应的节点进行处理。 Redis Cluster 是无代理模式去中心化的运行模式,客户端发送的绝大数命令会直接交给相关

mr~li的博客 340

Redis 源码解析 - Redis 集群模式扩展性

Redis 集群模式的扩展性设计围绕着无中心化管理、数据分片、节点动态增删、故障转移等核心机制展开。

qq_33240556的博客 529

Redis集群搭建

Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。Redis 将所有的数据分为 16384 个 slots(槽),每个节点负责其中的一部分槽位,当有 Redis 客户端连接集群时,会得到一份集群的槽位配置信息,这样它就可以直接把请求命令发送给对应的节点进行处理。

开源驱动,创造价值;坦诚清晰,快速失败;让复杂可计算。 934

简历上还不敢写精通redis?来看看这份阿里强推的redis深度历险成长手册!集群+应用+拓展+原理+源码齐飞

Redis 是互联网技术架构在存储系统中使用得为广泛的中间件,也是中高级后端工程师技术面试中面试官喜欢问的工程技能之一,特别是那些优秀的互联网公司,通常要求面试者不仅仅掌握 Redis 基础用法,还要理解 Redis 内部实现的细节原理。 这份手册分为分为基础和应用篇、原理篇、集群篇、拓展篇、源码篇共 5 大块内容。基础和应用篇讲解对读者来说有价值的内容,可以直接应用到实际工作中;原理篇、集群篇让开发者透过简单的技术表面看到精致的底层世界;拓展篇帮助读者拓展技术视野和夯实基础,便于进阶学习;源码篇让高阶.

JavaJIAMIN的博客 3453

惊呆了,竟然可以用这种方式秒建Redis集群?

这是我的第 44 篇原创文章。前面我们讲了《Redis 性能优化的 13 条军规!》,其中最重要的一条就是使用 Redis 的集群功能,那么本文我们就来...

weixin_44747933的博客 114

一分钟创建Redis生产集群

Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且...

无敌码农 396

有点意外,还可以用这种方式秒建Redis集群?

本文我们就来看看,如何用 1s 钟的时间来创建一个 Redis 集群。 Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。 Redis 将所有的数据分为 16384 个 slots(槽),每个节点负责其中的一部分槽位,当有 Redis 客户端连接集群...

求关注 689
上一篇: redis cluster源码研究--配置一致性保证
下一篇: redis cluster源码研究--reshard
whycold
博客等级 码龄19年 280粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值