docker高级(redis集群三主三从)
1. 新建6个docker容器redis实例
docker run -d --name redis-node-1 --net host --privileged=true -v /redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381docker run -d --name redis-node-2 --net host --privileged=true -v /redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382docker run -d --name redis-node-3 --net host --privileged=true -v /redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383docker run -d --name redis-node-4 --net host --privileged=true -v /redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384docker run -d --name redis-node-5 --net host --privileged=true -v /redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385docker run -d --name redis-node-6 --net host --privileged=true -v /redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
·命令分步解释
docker run
创建并运行docker容器实例
–name redis-node-6
容器名字
–net host
使用宿主机的IP和端口,默认
–privileged=true
获取宿主机root用户权限
-v /redis/share/redis-node-6:/data
容器卷,宿主机地址:docker内部地址
redis:6.0.8
redis镜像和版本号
–cluster-enabled yes
开启redis集群
–appendonly yes
开启持久化
–port 6386
redis端口号
2、进入容器redis-node-1并为6台机器构建集群关系
docker exec -it redis-node-1 /bin/bash
构建主从关系
//注意,进入docker容器后才能执行一下命令,且注意自己的真实IP地址
–cluster-replicas 1 表示为每个master创建一个slave节点
redis-cli --cluster create 192.168.111.147:6381 192.168.111.147:6382 192.168.111.147:6383 192.168.111.147:6384 192.168.111.147:6385 192.168.111.147:6386 --cluster-replicas 1
执行过程中输入yes,回车

·一切OK的话,3主3从搞定
·链接进入6381作为切入点,查看集群状态、查看节点状态
redis-cli -p 6381cluster infocluster nodes


3、主从容错切换迁移案例
·数据读写存储
·启动6机构成的集群并通过exec进入
·对6381新增两个key
·防止路由失效加参数-c并新增两个key
set name orange

加入参数-c,优化路由
#退出
exit
#-c登录
redis-cli -p 6381 -c#插入数据
set k1 v1
·查看集群信息
redis-cli --cluster check 192.168.111.147:6381

·容错切换迁移
·主6381和从机切换,先停止主机6381
·6381主机停了,对应的真实从机上位
·6381作为1号主机分配的从机以实际情况为准,具体是几号机器就是几号
·再次查看集群信息
#停止redis-node1
docker stop redis-node-1#进入reids-node2容器
docker exec -it redis-node2 /bin/bash#查看集群
redis-cli -p 6382 -ccluster nodes
前后对比

6381宕机了,6384上位成为了新的master。
每次案例下面挂的从机以实际情况为准,具体是几号机器就是几号
先还原之前的3主3从
docker start redis-node-1docker stop redis-node-4docker start redis-node-4
中间需要等待一会儿,docker集群重新响应。
4、主从扩容案例
·新建6387、6388两个节点+新建后启动+查看是否8节点
docker run -d --name redis-node-7 --net host --privileged=true -v /redis/share/redis-node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
docker run -d --name redis-node-8 --net host --privileged=true -v /redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
·进入6387容器实例内部
docker exec -it redis-node-7 /bin/bash
将新增的6387节点(空槽号)作为master节点加入原集群
将新增的6387作为master节点加入集群
redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381
6387 就是将要作为master新增节点
6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群
redis-cli --cluster add-node 192.168.5.20:6387 192.168.5.20:6381
·检查集群情况第1次
redis-cli --cluster check 192.168.2.20:6381

·重新分派槽号
redis-cli --cluster reshard IP地址:端口号
redis-cli --cluster reshard 192.168.5.20:6381

·检查集群情况第2次
redis-cli --cluster check 192.168.2.20:6381

·槽号分派说明
为什么6387是3个新的区间,以前的还是连续?
重新分配成本太高,所以前3家各自匀出来一部分,从6381/6382/6383三个旧节点分别匀出1364个坑位给新节点6387

·为主节点6387分配从节点6388
命令:redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID
redis-cli --cluster add-node 192.168.5.20:6388 192.168.5.20:6387 --cluster-slave --cluster-master-id
e4781f644d4a4e4d4b4d107157b9ba8144631451
e4781f644d4a4e4d4b4d107157b9ba8144631451-------这个是6387的编号,按照自己实际情况

·检查集群情况第3次
redis-cli --cluster check 192.168.111.147:6382

5、主从缩容案例
·目的:6387和6388下线
·检查集群情况1获得6388的节点ID
·将6388删除 从集群中将4号从节点6388删除
命令:redis-cli --cluster del-node ip:从机端口 从机6388节点ID
redis-cli --cluster del-node 192.168.111.147:6388 5d149074b7e57b802287d1797a874ed7a1a284a8
将6387的槽号清空,重新分配,本例将清出来的槽号都给6381
redis-cli --cluster reshard 192.168.111.147:6381

检查集群情况第二次

·将6387删除
命令:redis-cli --cluster del-node ip:端口 6387节点ID
redis-cli --cluster del-node 192.168.111.147:6387 e4781f644d4a4e4d4b4d107157b9ba8144631451#检查集群
redis-cli --cluster check 192.168.111.147:6381
没有了6387
6、设置redis集群密码
登录redis
docker exec -it redis-node-1 /bin/bash
redis-cli -p 6381 -c
#设置密码
config set requirepass 'password' #设置从节点连接主节点的密码
config set masterauth 'password'
相关文章:
docker高级(redis集群三主三从)
1. 新建6个docker容器redis实例 docker run -d --name redis-node-1 --net host --privilegedtrue -v /redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381docker run -d --name redis-node-2 --net host --privilegedtrue -v /…...
linux 设置与命令基础(二)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、系统基本操作 二、命令类型 三、命令语法 四、命令补齐 五、命令帮助 六、系统基本操作命令 总结 前言 这是本人学习Linux的第二天,今天主…...
ubuntu20.04中ros2安装rosbridge及启动方式
ros2 启动rosbridge: 要启动ROS2中的rosbridge,需要先安装ROS2的rosbridge_suite软件包。使用以下命令安装: sudo apt-get update sudo apt-get install ros-<distro>-rosbridge-suite将<distro>替换为正在使用的ROS2发行版的名…...
TCP之超时重传、流量控制和拥塞控制
一、超时重传 TCP超时重传是TCP协议中的一种机制,用于在发生丢包或数据包未及时确认的情况下,重新发送未确认的数据段。 当发送方发送一个数据段后,会启动一个定时器(称为超时计时器),等待接收方的确认。…...
git clone 报SSL证书问题
git命令下运行 git config --global http.sslVerify false 然后再进行重新clone代码...
Spring Boot 排除配置类的引用的方法
Spring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了。 比如:数据源、邮件,这些都是提供…...
代码随想录打卡—day46—【DP】— 8.29 背包END
1 139. 单词拆分 139. 单词拆分 做了很久...估计2h 一开始我的思路卡死了 看题解之后的思路的详解见注释, 我的写法和carl 答案在一些微小的细节上略有不同,我的更好理解,但他的解法更简单。 我写的过程中,需要注意下标和字符…...
lua学习-3 循环和流程控制
这里写目录标题 判断for 循环数值遍历泛型遍历遍历数组遍历对象ipairs 和 pairs的异同 while 循环repeat循环goto基础用法注意事项 判断 for 循环 数值遍历 for exp1,exp2,exp3 do//todoend上述代码是指:从exp1 到exp2 以exp3为步长进行循环并执行todo代码&#…...
3、监测数据采集物联网应用开发步骤(3)
监测数据采集物联网应用开发步骤(2) 系统整体结构搭建 新建项目 输入项目名称:MonitorData 所谓兵马未动粮草先行,按下图创建好对应的模块备用: com.plugins 业务插件模块 com.zxy.adminlog 日志或文本文…...
MySQL用户管理及用户权限
目录 数据库用户管理 新建用户 查看用户 重命名用户rename 删除用户drop 修改用户密码 找回root密码 数据库用户授权 授予权限 查看用户权限 撤销用户权限 数据库用户管理 新建用户 CREATE USER 用户名来源地址 [IDENTIFIED BY [PASSWORD] 密码];用户名:…...
Yolov8-pose关键点检测:模型轻量化创新 | PConv结合c2f | CVPR2023 FasterNet
💡💡💡本文解决什么问题:新的partial convolution(PConv),通过同时减少冗余计算和内存访问可以更有效地提取空间特征。 PConv| GFLOPs从9.6降低至8.5,参数量从6482kb降低至6134kb, mAP50从0.921提升至0.925 Yolov8-Pose关键点检测专栏介绍:https://blog.csdn.n…...
聊聊mybatis-plus的SafetyEncryptProcessor
序 本文主要研究一下mybatis-plus的SafetyEncryptProcessor SafetyEncryptProcessor mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/autoconfigure/SafetyEncryptProcessor.java public class SafetyEncryptProcessor implements EnvironmentPostProc…...
【PCL (Point Cloud Library)可视化点云的工具汇总】
PCL (Point Cloud Library)可视化点云的工具 PCL (Point Cloud Library) 提供了一系列的工具和类用于点云的可视化。以下是其中的一些主要工具和功能: pcl::visualization::CloudViewer: 如前所述,这是一个简单易用的可视化工具,主要用于基本的点云显示。pcl::visualizatio…...
实现 Trie (前缀树)
题目链接 实现 Trie (前缀树) 题目描述 注意点 word 和 prefix 仅由小写英文字母组成 解答思路 首先要理解前缀树是什么,参照该篇文章【图解算法】模板变式——带你彻底搞懂字典树(Trie树)在了解前缀树是什么后,设计前缀树就会更加容易,…...
ElasticSearch基础知识汇总
文章目录 前言一、认识ElasticSearch1.正向索引和倒排索引2. MySql与ElasticSearc3.IK分词器 二、ES索引库操作1.mapping映射属性2.索引库的CRUD 三、ES文档库操作 前言 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基…...
服务器数据库中了locked勒索病毒怎么办,locked勒索病毒恢复工具
最近一段时间网络上的locked勒索病毒非常嚣张,自从6月份以来,很多企业的计算机服务器数据库遭到了locked勒索病毒的攻击,起初locked勒索病毒攻击用友畅捷通T用户,后来七月份开始攻击金蝶云星空客户,导致企业的财务系统…...
没有 JavaScript 计时器的自动播放轮播 - CSS 动画
先看效果: 再看代码(查看更多): <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计时器</title><style>* {padding: 0;margin: 0;box-siz…...
《Flink学习笔记》——第三章 Flink的部署模式
不同的应用场景,有时候对集群资源的分配和占用有不同的需求。所以Flink为各种场景提供了不同的部署模式。 3.1 部署模式(作业角度/通用分类) 根据集群的生命周期、资源的分配方式、main方法到底在哪里执行——客户端还是Client还是JobManage…...
网络安全(黑客技术)0基础学习手册
目录梗概 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来…...
腾讯云服务器价格表大全_轻量服务器_CVM云服务器报价明细
腾讯云服务器租用费用表:轻量应用服务器2核2G4M带宽112元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、云服务器CVM S5实例2核2G配置280.8元一年、GPU服务器GN10Xp实例145元7天,腾讯云服务器网长期更新腾讯云轻量…...
Python3.8环境配置全攻略:从零开始搭建你的第一个项目
Python3.8环境配置全攻略:从零开始搭建你的第一个项目 1. 为什么选择Python3.8环境 Python3.8作为Python3系列的一个重要版本,引入了多项新特性,包括海象运算符(:)、位置参数限定符(/)等语法改进,同时在性能上也有显著提升。对于…...
【无标题】260329
一切都只是我想多了么看到你的博文看到你的新年快乐现在看到你删库跑路为什么要这样出现又消失。。。本来就虚无缥缈的一点儿联系又消失殆尽如果现在可以见到你我心里有N个为什么想问你只是觉得憋屈可能是我理解能力不足共情能力有限我猜不到你的心思啊你到底是想联系还是不想联…...
小龙虾使用手册(蓝皮书)实战案例版
扫描下载文档详情页: https://www.didaidea.com/wenku/16656.html...
CTC语音唤醒模型在医疗语音录入系统中的应用案例
CTC语音唤醒模型在医疗语音录入系统中的应用案例 1. 引言 在医疗场景中,医生每天需要处理大量的病历记录工作。传统的手写或键盘输入方式不仅效率低下,还容易分散医生对患者的注意力。现在,通过CTC语音唤醒技术,医疗语音录入系统…...
保姆级教程:在Ubuntu上复现‘easy溯源’靶场,手把手教你分析反弹Shell和内网穿透痕迹
在Ubuntu上复现‘easy溯源’靶场:从环境搭建到痕迹分析实战指南 当你第一次接触应急响应时,是否曾被各种专业术语和复杂场景搞得晕头转向?本文将带你从零开始,在Ubuntu系统上完整复现一个名为easy溯源的靶场环境。这不是简单的解题…...
GME-Qwen2-VL-2B-Instruct部署详解:CUDA版本兼容性与FP16加载验证
GME-Qwen2-VL-2B-Instruct部署详解:CUDA版本兼容性与FP16加载验证 1. 项目概述 GME-Qwen2-VL-2B-Instruct是一个专为图文匹配度计算优化的多模态模型工具。它解决了原生调用中常见的打分不准问题,通过本地化部署实现了高效、安全的图文检索功能。 1.1…...
智能车小白也能懂的舵机PD控制:从电感差比和到方向控制,保姆级避坑指南
智能车方向控制入门:用PD算法驯服你的舵机 第一次看到智能车在赛道上流畅过弯时,很多人都会好奇——这辆小车是如何感知赛道边界并精准控制方向的?作为电磁组智能车的核心部件,舵机就像车辆的"方向盘",而PD控…...
从设计稿到上架:一份给独立开发者的Android应用图标全流程制作指南
从设计稿到上架:独立开发者的Android应用图标全流程实战 在移动应用生态中,图标是用户对产品的第一印象。Google Play商店数据显示,专业设计的应用图标能提升40%以上的点击率。但对于独立开发者和小团队而言,如何在有限资源下打造…...
为Jetson AGX添加自定义硬件:手把手编写设备树节点驱动LED与PPS
Jetson AGX硬件扩展实战:从设备树节点到LED与PPS驱动开发 在嵌入式开发领域,Jetson AGX Xavier凭借其强大的计算能力和丰富的接口资源,成为工业控制、机器人视觉等高性能场景的首选平台。但要让这块开发板真正发挥潜力,掌握自定义…...
KubeSphere Core 离线部署实战:从镜像搬运到私有仓库配置
1. 离线部署KubeSphere Core的核心挑战 在企业内网环境中部署KubeSphere Core时,最大的障碍就是如何解决容器镜像的获取问题。我去年给某金融机构做私有云改造时就遇到过这种情况——他们的生产环境完全隔离,所有服务器都无法直接访问公网。当时为了部署…...
