docker小白第十天

redis集群主从容错切换案例

3主3从的redis集群,某个主机宕机了,需要对应的从机补位。

docker exec -it redis-node-1 /bin/bash
# 进入容器1的命令行
redis-cli -p 6381
# 进入节点1的命令行
cluster nodes
# 查看集群信息

在这里插入图片描述
可以看到1号和6号对应是主从关系。此时尝试停掉节点1.

docker stop redis-node-1
# 推出redis节点、退出容器命令行,在linux虚机上执行命令
docker exec -it redis-node-2 /bin/bash
# 进入redis容器2查看节点信息
redis-cli -p 6382
cluster nodes

可以看到redis节点1已经failed了,redis节点6的信息变成了master,不再是之前的slave。
在这里插入图片描述
此时再启动之前停掉的redis节点1.通过xshell在开个连接窗口,在linux虚机的命令行执行,不是在容器内执行。

docker start redis-node-1
# 启动节点1

然后在还没退出的redis节点2查看集群信息。cluster nodes此时节点1变成了从机。不再是之前的主机。

在这里插入图片描述
那么此时如果想在把redis节点1作为主机,redis节点6作为从机,需要进行以下步骤。

# 停掉节点6,给节点1一个自动上位的机会。
docker stop redis-node-6
# 重启节点6,就变成了从机。
docker start redis-node-6

redis集群主从扩容需求案例

在之前3主3从的基础上,新增一对机器变成4主4从。

新建两个容器redis节点

docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
# 依次修改容器名称、容器卷名称、端口号,创建7和8两个redis节点。
dcoker ps

在这里插入图片描述

进入新增的redis容器内部

进入redis节点7的容器内部命令行,将节点7加入集群。

docker exec -it redis-node-7 /bin/bash
redis-cli --cluster add-node 192.168.0.175:6387 192.168.0.175:6381
# 6387是集群内要新增的节点,6381是集群节点内的领路人,要通过节点1进行引导加入。其中的ip地址换做自己的linux虚机的实际ip。

可以看到已经加入集群
在这里插入图片描述

查看集群内更详细信息。
redis-cli --cluster check 192.168.0.175:6381

可以看到集群内是有redis节点7的,但是显示没有哈希槽位分配。
在这里插入图片描述

重新分配槽号

# 将redis节点1为开头的集群,进行哈希槽位的重分配。
redis-cli --cluster reshard 192.168.0.175:6381

执行完该命令会遇到如下选项

How many slots do you want to move (from 1 to 163984)?
# 因为是要配置成4主4从,所以16384/4=4096,填4096
What is the receiving node ID?
# 将输入查看集群信息命令后的redis节点7的 node id复制
Source node #1:
# 填all

输入命令再次查看集群信息

redis-cli --cluster check 192.168.0.175:6381

可以看到redis节点7已经有哈希槽位了。
在这里插入图片描述
同时6387这个节点,其槽位不是连续的,是分段式的,是因为全部重新分配成本太高,所以之前的3个主节点各自匀出部分槽位,给新节点。

M: 3376a19ecaa1a0c13945b791875a5efbf1bd2fc7 192.168.0.175:6387 slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master

配置对应从节点

为主节点7配置挂载从节点8.并再次检查redis集群信息。

redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点IDredis-cli --cluster add-node 192.168.0.175:6388  192.168.0.175:6387 --cluster-slave --cluster-master-id 3376a19ecaa1a0c13945b791875a5efbf1bd2fc7
redis-cli --cluster check 192.168.0.175:6381

可以看到配置成功。
在这里插入图片描述

redis集群缩容案例

先删除从节点redis8,再删除对应的主节点redis7,恢复成之前的3主3从状态。先检查集群情况获取redis节点8的节点id。

redis-cli --cluster del-node 宿主机ip:从机端口 从机的节点id
redis-cli --cluster del-node 192.168.0.175:6388 4a3c4f3987d85a226ea109e8ca395d84d0570313

在这里插入图片描述
将redis节点7的槽号清空,恢复给原来的3个主节点。

# 将redis节点1为开头的集群,进行哈希槽位的重分配。
redis-cli --cluster reshard 192.168.0.175:6381

执行完命令会遇到一些选项需要填写,此处为方便填写,只执行了一次分配槽位命令,全部还给了redis节点1.

How many slots do you want to move (from 1 to 163984)?
# 因为是要从4主4从缩容成3主3从,所以16384/4=4096,填4096
What is the receiving node ID?
# 要将槽位一次性全分配给redis节点1,输入查看集群信息命令后的redis节点1的 node id复制
Source node #1:
# 填要删除的那个主节点id,redis7的节点id,即分配槽位的来源
Source node #2:done

可以看到redis节点1,多了一个分段的槽位。另外需要注意的是,如果要将redis节点7的槽位均匀的还给其他3个主节点,那就需要执行3次还槽位的命令,每次需要移动的槽位数量要计算为4096/3=1365.
在这里插入图片描述
删除redis节点7.

redis-cli --cluster del-node 192.168.0.175:6387 3376a19ecaa1a0c13945b791875a5efbf1bd2fc7
# ip替换为宿主机ip,并指定redis节点7的节点id
redis-cli --cluster check 192.168.0.175:6381
# 查看集群信息

可以看出,又变成了3主3从的集群模式。
在这里插入图片描述

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

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

相关文章

螺旋数字阵(100%用例)C卷 (JavaPythonNode.jsC语言C++)

疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m (0 < n <= 999,0 < m <= 999) ,从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3...n,最终形成一个m行矩阵 小明对这个矩阵有些要求 1.每行数字的个数一样多…

基于Java SSM框架实现房屋租赁合同系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现房屋租赁合同系统演示 摘要 在网络高速发展的时代&#xff0c;众多的软件被开发出来&#xff0c;给用户带来了很大的选择余地&#xff0c;而且人们越来越追求更个性的需求。在这种时代背景下&#xff0c;人们对房屋租赁系统越来越重视&#xff0c;更好的…

C++/CLI——2类和对象生存期

C/CLI——2函数与类的使用方法 函数使用 定义函数和使用函数基本与C#相同&#xff0c;只不过C/CLI可以像标准C一样&#xff0c;可以先声明函数原型&#xff0c;再定义函数主体。值得注意的是&#xff0c;如果有默认参数&#xff0c;只能在函数原型中定义&#xff0c;不能在函…

桉木芯建筑模板与其他材质比较有何不同?

在建筑行业中&#xff0c;模板的选择对于确保工程质量和效率至关重要。桉木芯建筑模板作为市场上的一种选择&#xff0c;与其他材质的模板相比&#xff0c;具有独特的优势。能强优品木业作为专业的桉木芯建筑模板生产厂家&#xff0c;其产品充分展示了这一材质的优越性能。 材质…

计算机组成原理复习5

总线结构与控制 文章目录 总线结构与控制总线结构单总线结构双总线结构三总线结构四总线结构 总线控制判优控制&#xff08;仲裁逻辑&#xff09;链式查询方式计数器定时查询独立请求方式 通信控制同步通信异步通信两种传输率的异步串行传送字符格式 总线结构 单总线结构 单总…

Maven的使用和配置

Maven的使用和配置 起源&#xff1a; Apache 软件基金会(非营业的组织&#xff0c;把一些开源软件维护管理起来) maven 是apache的一个开源项目&#xff0c;是一个优秀的项目构建(管理)工具&#xff0c; maven 管理项目中的jar&#xff0c;以及jar与jar之间的依赖 maven 可…

力扣热题100道-子串篇

字串 560.和为K的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&a…

前端算法之滑动窗口

滑动窗口 滑动窗口思路&#xff1a;举例: 在一个数组中查找连续子数组的最大值之和。举例: 无重复字符的最长子串 滑动窗口 滑动窗口&#xff08;Sliding Window&#xff09;是一种常用的算法技巧&#xff0c;用于处理数组或字符串相关的问题。 它通过维护一个固定大小的窗口…

亿级流量场景下如何优化混合回收

大白话&#xff1a; 我们完全可以通过最大停顿时间的调整&#xff0c;来控制每次垃圾回收的region数量以及回收垃圾大小。 大白话&#xff1a; 1.是已分配内存占总内存的超过45%阈值&#xff1b; 2.优化G1垃圾回收关键的一点&#xff0c;设置合理的最大停顿时间。 大白话&#…

打破数据孤岛:ChatGPT如何打通金融大数据的任督二脉?

文章目录 一、引言二、ChatGPT与金融大数据分析的融合三、实践应用&#xff1a;ChatGPT在金融大数据分析中的优势与挑战四、案例分析&#xff1a;ChatGPT在金融大数据分析中的应用案例五、前景展望&#xff1a;ChatGPT在金融大数据分析领域的未来发展《AI时代Python金融大数据分…

数据仓库-数仓优化小厂实践

一、背景 由于公司规模较小&#xff0c;大数据相关没有实现平台化&#xff0c;相关的架构都是原生的Apache组件&#xff0c;所以集群的维护和优化都需要人工的参与。根据自己的实践整理一些数仓相关的优化。 二、优化 1、简易架构图 2、ODS层优化 2.1 分段式解析 随着业务增长…

美团面试:索引的设计规范,你知道哪些?

美团面试&#xff1a;索引的设计规范&#xff0c;你知道哪些&#xff1f; 尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;尼恩一直在指导大家改造简历、指导面试。指导很多小伙伴拿到了一线互联网企业网易、美团、字节、如阿里、滴滴、极兔、有赞、希音、百…

智慧园区物联综合管理平台之系统集成功能及接口需求

南向接口 高端制造园区联网平台南向主要面对各园区各项公共物联设施接入。 南向所接入的接口类型、 数据协议等也种类繁多, 平台根据实际调研情况及未来发展趋势, 梳理了十几种设备以及协议接入的情况, 依据此情况, 园区物联管理平台设计了标准的、 统一的南向的标准SDK调…

2023年12月31日_解读openai的新对齐论文

如果人类无法监督超级人工智能 那么人工智能可以么&#xff1f; 过去一年 以预测下一个Token为本质的大模型 已经横扫了人类世界的多项任务 展现了人工智能的巨大潜力 Ilya Sutskever也大胆预言 如果模型能够很好地预测下一个token 那么意味着它能够理解导致这个token产生的深刻…

多边形的填充算法的分析

多边形的填充 分析 思路一 我们之前已经实现了对直线的扫描转换&#xff0c;但是现在我们遇到了新的问题那就是如何对多边形进行填充&#xff0c;如图所示&#xff0c;如何对图示的多边形进行填充呢&#xff1f; 我所想到的第一个办法是这样的&#xff0c;那就是假设上顶点…

webRTC实时通信demo

参考文档&#xff1a; https://www.jianshu.com/p/f439ce5cc0be https://www.w3cschool.cn/socket demo流程示意图&#xff08;用户A向用户B推送视频&#xff09;&#xff1a; #mermaid-svg-0KZaDQ5DBl28zjmZ {font-family:"trebuchet ms",verdana,arial,sans-seri…

总结—elasticsearch启动失败的几种情况及解决

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 摘要 本文主要梳理从ES初学以来所遇到的启动失败的几种情况。 1、使用root用户启动失败 在有一次搭建elasticsearch的时候&am…

除了国家自然科学基金,还有以下科研基金

除了国家自然科学基金&#xff0c;还有以下科研基金&#xff1a; 国家社科基金&#xff1a;这是国家社会科学基金的简称&#xff0c;主要支持国内的社会科学研究项目。国家重点实验室和国家工程&#xff08;技术&#xff09;研究中心开放基金&#xff1a;这些基金主要支持在国…

【Linux】—— 匿名管道

前言&#xff1a; 接下来我将带大家探索 进程间通信 的方式。本期&#xff0c;要讲的就是管道其中之一“匿名管道”&#xff01;&#xff01; 目录 &#xff08;一&#xff09;进程间通信介绍 1、进程间通信目的 2、进程间通信发展 3、进程间通信分类 &#xff08;二&…

(JAVA)-(网络编程)-UDP协议

在上上文章中我们简单了解了UDP通信协议和TCP协议。这篇文章 来讲解java中如何使用UDP协议发送数据。 UDP通信协议发送数据&#xff1a; 而使用UDP通信协议发送数据也可以看成是寄快递的过程。 在寄快递的过程中&#xff0c;我们首先得找快递公司&#xff0c;接着得打包好礼物…