docker环境下,redis的扩容和缩容

docker环境下配置redis3主3从集群配置,实现主从错、主从扩容、主从 阅读详情

本文根据阳哥的docker教程来的

首先创建出redis的image

docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381

按照上面的格式依次创建出6个

然后进入一个容器
构建主从关系

docker exec -it redis-node-1 /bin/bash

进入1号机之后。

redis -cli --cluster create 192.168.10.102:6381 192.168.10.102:6382 192.168.10.102:6383 192.168.10.102:6384 192.168.10.102:6385 192.168.10.102:6386
--cluster-replicas 1
--cluster-replicas 1 //这句的意思是主从关系1:1

运行结果如下
在这里插入图片描述
以6381为切入点,在这里插入图片描述

在这里插入图片描述当我们去6381里添加数据时会报错,因为不在那个槽的范围内![在这里插入图片描述](https://img-blog.csdnimg.cn/fbdc7cf018624e5081b1c58d13772f8c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZCD6KW_55Oc55qE6bG8,size_20,color_FFFFFF,t_70

集群方式启动

接下来我们以集群的方式去启动,就会发现,可以插入。
集群的启动方式是在 原先的后面加一个 -c
在这里插入图片描述

检查集群

接下来一个检查集群的一个命令

redis -cli --cluster check IP:port

在这里插入图片描述

主从切换

当我们的主机挂了之后,丛机会不会主动切换上去呢?
首先停掉一个
在这里插入图片描述现在我们进入2号机,去连接redis客户端,并检查当前节点状态,发现1号机已经dang掉了。
而且6384已经成为了master,不再是slave了
在这里插入图片描述那如果,1号机又活过来了呢?情况会是怎样的呢?
我们先启动1号机
在这里插入图片描述在这里插入图片描述
通过结果,可以发现,结果不会改变,1号机会变成从机,4号机依旧是主机
在这里插入图片描述

主从扩容

注意:他的hash槽是从各个主机上依次剥离出来的。
首先,新建两个节点。

docker run -d --name redis-node-7 --net host --privileged=true -v /data/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 /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

接下来,将启动好的redis加入我们的集群。
进入我们新建好的redis节点。
然后执行命令

redis-cli --cluster add-node 

在这里插入图片描述
执行完命令后,我们新建的节点确实加入到集群中。
在这里插入图片描述

接下来检查一下。
进入到1号机。
执行检查命令。
在这里插入图片描述虽然加入进去了,但是我们发现,我们的第四号却没有槽位。
在这里插入图片描述

接下来我们就需要重新分配槽号
在这里插入图片描述
我可以先看现在的情况

在这里插入图片描述
接下来就是怎么分,以及分配给谁
在这里插入图片描述
接下来就是分配给谁,以及怎么分的问题。
四个机器,16384/4=4096,分配给我们新建的主机
在这里插入图片描述
接下来,我们再检查一下我们的集群,会发现,我们的槽号已经发生了改变。
再看,7号机,发现,他的槽号是有3段,也就是每个机器都匀了一点给他

在这里插入图片描述
为什么这样分配呢?
因为从新分配的话,成本太高。
在这里插入图片描述接下来,添加从机

redis-cli --cluster add-node 要添加的 目标主机:端口 --cluster-slave --cluster-master-id 实际id 

执行完命令后,发现添加成功
在这里插入图片描述

主从缩容

要考虑两个问题,如何归还槽号,匀着分,还是一下都给一个。
然后就是如何关闭,先关闭从机,然后分槽号,然后关主机。

接下来就是实操。
首先,我们要找到我们要删除的id,也就是先检查容器状态在这里插入图片描述先锁定我们要删除的
在这里插入图片描述
接下来就是删除操作

redis-cli -cluster del-node ip:从机端口 节点id

在这里插入图片描述结果如下
在这里插入图片描述
再次检查就发现已经删除成功
接下来,重新分配槽号
在这里插入图片描述然后就是分配给谁,我们可以一次分配一点, 也可以一次分配完,这里图省事,一次将所有的槽号,分给1号机。
然后,就是图中,首先,我们分配给谁,然后,谁接收。
在这里插入图片描述
完成之后,检查一下集群

redis-cli --cluster check ip:port

可以看出6387的槽号已经全部给了6381
在这里插入图片描述完成槽号分配,就是删除主机

在这里插入图片描述
接下来,再检查一次,我们会发现,回到3主3从的集群。

VS Code/TRAE集成Cppcheck并启用MISRA规则 本文探讨了嵌入式开发中Cppcheck工具集成与MISRA规则检查的必要性。详细介绍了安装配置步骤:安装VSCode/TRAE、Cppcheck软件、配置插件参数、安装Python环境,并重点说明了MISRA规则文件的设置方法。通过完整的配置流程,实现了嵌入式开发环境下静态检查与安全标准的落地。 阅读详情

相关推荐

ESP32接入扣子(Coze) API使用自定义智能体

本示例将使用ESP32开发板通过WiFi接入 **Coze API**,实现一个简单的聊天机器人功能。用户可以通过串口向机器人输入问题,ESP32将通过Coze API与智能体进行通信,并返回对应的回复。本文将详细介绍了如何通过HTTP请求JSON解析来与API进行交互,并给出完整的代码示例。

宁子希的博客 1万+

Docker器配置资源限制

器的主进程负责管理它启动的所有进程。

lingshengxiyou的博客 996

rk3399 hdmi HDCP key烧录

1.key转换 使用 hdcp\ProvisioningTool_20170526\KeyConverterV2.02 目录下的KeyConvertor.exe工具将1.4key进行转换 转换后得到 TX00000001.skf 文件,将 TX00000001.skf 文件烧录到开发板上,烧录方式: 打开文件 hdcp\ProvisioningTool_20170526\ProvisioningTool20170526\ProvisioningTool.exe 选择烧录方式与烧录路...

qq_32645109的博客 3800

Helm 部署的redis,增加数据数量

问题: 默认是16个,想要增加到51个。 解决步骤: 通过查看 docker传统方式安装的redis,在配置文件中,有这一项, databases 定义数据数量

intelrain的博客 701

Docker 部署 Redis 集群(3主3从)

1 下载镜像并启动实例 docker pull redis:6.0.8 docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -d --name redis-node-2 --net h..

z_xiaoluan的博客 1433

docker安装redis主从集群

命令:redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID。进入redis-node-1并为6台机器构建集群关系 docker exec -it redis-node-1 /bin/bash。删除slave redis-cli --cluster del-node ip:从机端口 从机节点ID。最后再次查看集群状态。

qq_51622422的博客 199

基于Docker实现Redis集群配置

redis-cli --cluster add-node 192.168.0.2:新slave端口 192.168.0.2:新master端口 --cluster-slave --cluster-master-id 新主机节点ID。当前所在节点myself,master,6381、6382、6383分别是三个主节点,三个从节点6385、6384、6386,从节点后面分别跟着主节点的节点id表示此从节点挂在此主节点上,实现一主一从。

qq_47158964的博客 2219

Docker环境的下的redis集群搭建(扩容

Docker环境的下的redis集群搭建(扩容

CodePanda@GPF的博客 593

Redis集群的扩容

目前的redis集群上有7001、7002、7003、7004、7005、7006,六台三主三从的集群,现在要往这个集群扩容,7007,7008两个redis节点,7007作为主节点,7008作为从节点添加到集群中。Redis实现,需要哈希槽重新分配,将需要一处的节点所分配的所有哈希槽的值分配给其他需要运行的工作的节点上,还需要移除该节点的从节点,然后再删除该节点。集群中7007节点添加一个从节点7008,添加从节点的主要目的是提高高可用,防止主节点宕机后该节点无法提供服务,添加命令如下。

qq_27696323的博客 458

docker实现redis集群主从扩容

扩容: 当前的3主3从增加到4主4从 1、启动扩容的主机从机 2、进入6387,将6387添加到集群 可以看到6387节点并未分配到槽位3、重新分配槽位 执行后: 第一个参数为每个节点分配的槽位数 第二个参数为新加入的节点的id 第三个参数为是否全部分配,选择all6387分到的槽位为其他三个分一点出来的4、配置6387的从机6388 : 1、删除从机 2、重新分配槽位 第一个参数:移动的槽位数 第二个参数:接收方id 第三个参数:槽位来源方id,结束为done3、删除6387节点 节点信息里面就

qq_46624276的博客 360

Docker搭建redis集群

Docker搭建redis集群

weixin_45974277的博客 7416

Docker配置Redis单机版、Redis集群管理(三主三从、扩容

Docker配置Redis单机版、Redis集群管理(三主三从、扩容): (1)配置Redis器实例,并开启远程访问; (2)Redis集群三种方式说明,配置Redis集群,并开启远程访问; (3)Redis集群增删节点,扩容

betterdavid的博客 740

基于Docker器3主3从Redis的集群配置(主从迁移,主从扩容,主从)

1.先关闭防火墙 2.启动docker后台服务 systemctl start docker 3.新建6个dockerredis实例 docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -

weixin_49983224的博客 1027

dockerredis集群的主从错切换迁移、主从扩容以及

dockerredis集群的主从错切换迁移、主从扩容以及

z1171127310的博客 591

Docker学习笔记-1】Docker单机一键配置Redis集群(3主3从+数据读写存储+错切换迁移+主从扩容

Docker单机一键配置Redis集群(3主3从+数据读写存储+错切换迁移+主从扩容

DeusExMachina_V的博客 816

Docker安装Redis

1、获取redis镜像列表 docker search redis 2、下载官方redis镜像 docker pull redis 我下载的是最新版的 3、查看是否下载redis镜像成功 docker images 查询的下载镜像列表中有redis就表示下载成功了 4、启动镜像、做映射 4.1、下载redis.conf文件,文件可以从官网下载 redis.conf配置文件可以放在/opt/data/redis/目录下,我是为了方便统一管理放到了一个自定义的文件夹下 修改redis.conf的启动默认项配置

qq_45699784的博客 768

docker配置安装redis

下载redis镜像 docker pull redis 然后启动器,做映射 创建配置文件目录存放redis.conf,文件从官网下载。 创建文件夹,新建配置文件贴入从官网下载的配置文件并修改 mkdir /usr/local/docker vi /usr/local/docker/redis.conf 修改启动默认配置(从上至下依次): bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问 protected-mode no #默认yes,开启保护模式,限制为本地访问 daemon

二十一克阳光!的博客 516

docker搭建redis集群

docker搭建redis集群 docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -d --name redis-node-2 --net host --privileged=true -v /data/re

weixin_44142888的博客 304

基于Docker搭建Redis集群并进行扩容教程

Redis集群及原理说明

Brave_heart4pzj的博客 928

Docker 实战一、创建极简Redis Image

最近学习 docker,看到了这样一篇文章《Docker 的 Image 太大,怎么变小?》,原博客地址没找到,感兴趣的可以移步原创的开源项目 一、基本概念: Docker 不是虚拟机 (切记) Docker 里面的程序运行时不需要完整的操作系统! CoreOS,RHEL, Ubuntu, CentOS,等等等,它们都是一个操作系统! 二、步骤 使用 Busybox 的 Instal...

晓晓攻城师的攻城之路 1049

Docker中进行redis的集群配置动态扩

Docker配置redis集群以及动态扩容

yfy的博客 850

DCMM-数据管理能力成熟度评估模型.pdf

DCMM-数据管理能力成熟度评估模型

JLINK V10固件修复工具-老酒修.rar

购买的山寨JLINK V10.2总是提示升级,手痒升级后就挂了!!拆开内部芯片是LPC4357,网上找了固件摸索试验,竟然活了!!这里感激做固件的大神,且把回砖过程细数给大家救砖。

上一篇: nginx 的使用(反向代理、动静分离)
下一篇: This primary key of “id“ is primitive
吃西瓜的鱼
博客等级 码龄7年 8粉丝 70原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃西瓜的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值