阿昌教你通过docker搭建Redis集群


4、查看集群状态

  • 查看集群状态这里以node-1,6381作为切入点

redis-cli -p 6381 cluster info

在这里插入图片描述

  • 查看集群节点

redis-cli -p 6381 cluster nodes

在这里插入图片描述


5、集群的读写存储

  • 通过-c参数实现读写存储切换集群节点

因为他在读写key的时候会对key进行计算出这个key所在哪个节点的槽位,每个操作都对应每个节点才可以去读写

redis-cli -p 6381 -c

在这里插入图片描述


6、查看集群信息

redis-cli --cluster check 192.168.88.128:6382

在这里插入图片描述


7、关于容错切换迁移

如果我们node1节点宕机了,那他的从节点就会顶上作为新的Master。如果node1节点后续又王者回归后,他也只能重新做新Master的从节点。

在这里插入图片描述

在我们这里的情况node-1节点的从节点是node-6,所以当node-1宕机后,node6就会成为新的master。


四、主从扩容


1、创建要扩容的节点

这里我们以再加入一对主从节点6387、6388,且6387是主,6388是从

#节点-7,主节点

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

#节点-8,从节点

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

docker ps

在这里插入图片描述


2、进入6387容器实例内部

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


3、将新增的6387节点(空槽号)作为master节点加入原集群

  • 新增节点到集群中

将新增的6387作为master节点加入集群

redis-cli --cluster add-node 192.168.88.128:6387 192.168.88.128:6381

#6387 就是将要作为master新增节点

#6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群

在这里插入图片描述

  • 检查集群情况第1次

redis-cli --cluster check 192.168.88.128:6381

在这里插入图片描述

  • 重新分派槽号reshard

redis-cli --cluster reshard 192.168.88.128:6381

  • 指定再分配的节点槽位数量4096-----16384/4

在这里插入图片描述

  • 指定要给“谁”,是新机器node7

在这里插入图片描述

  • 指定来源,是所有节点—all

在这里插入图片描述

  • 是否继续分配—yes

在这里插入图片描述

  • 查看分配槽位后的结果

redis-cli --cluster check 192.168.88.128:6381

在这里插入图片描述

上面的node-7节点再分配到的操作发现是[0-1364],[5461-6826],[10923-12287]

结论是:他是将之前3个槽位的节点,大家都抠出来一点再分配给新节点node-7


4、将node-8从节点加入Redis集群

redis-cli --cluster add-node 192.168.88.128:6388 192.168.88.128:6387 --cluster-slave --cluster-master-id 258cb3004944d0d80ac32c501d2c4d6094f5ced3

#258cb3004944d0d80ac32c501d2c4d6094f5ced3-------这个是6387的编号,按照自己实际情况

在这里插入图片描述


5、再次检查集群情况

redis-cli --cluster check 192.168.88.128:6382

在这里插入图片描述

此时就有4台节点,且node-7是主节点,node-8是node-7的从节点。

那到这里主从扩容就结束了!


五、主从缩容


1、说明

将6387和6388下线,如果要删除一对主从,就需要先下线6388节点,再下线6387节点


2、检查集群情况1获得6388的节点ID

redis-cli --cluster check 192.168.88.128:6382

在这里插入图片描述


3、将集群中将从节点6388删除

redis-cli --cluster del-node 192.168.88.128:6388 861e143b54b5dff826964ccb9b0ab6a4be6dddcf

在这里插入图片描述


4、检查集群节点状态

redis-cli --cluster check 192.168.88.128:6382

在这里插入图片描述


5、将6387的槽号清空,重新分配,本例将清出来的槽号都给6381

redis-cli --cluster reshard 192.168.88.128:6381

#流程,将6387中的4096个槽位全部发给6381

4096 #指定要分配的槽位

6381的id #指定谁接收槽位

6387的id #source从谁那里拿来给上面的接收人

yes


6、检查集群情况

redis-cli --cluster check 192.168.88.128:6382

在这里插入图片描述


7、将6387删除

redis-cli --cluster del-node 192.168.88.128:6387 258cb3004944d0d80ac32c501d2c4d6094f5ced3

#258cb3004944d0d80ac32c501d2c4d6094f5ced3为6387的节点id

在这里插入图片描述


8、检查集群情况

redis-cli --cluster check 192.168.88.128:6382

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

小编精心为大家准备了一手资料

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

BATJ面试要点及Java架构师进阶资料

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
mg.cn/images/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

最后

小编精心为大家准备了一手资料

[外链图片转存中…(img-UiVrAOLi-1712522728115)]

[外链图片转存中…(img-aTtuWNgA-1712522728115)]

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

[外链图片转存中…(img-nYURqBt0-1712522728115)]

BATJ面试要点及Java架构师进阶资料

[外链图片转存中…(img-qEn8aVt3-1712522728116)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过docker搭建Redis集群的步骤如下: 1. 创建容器:使用docker命令创建多个Redis容器,每个容器代表一个节点。例如,可以使用以下命令创建一个名为redis-node-1的节点容器: ``` docker run --name redis-node-1 -p 6381:6379 -d redis ``` 2. 进入容器:使用docker exec命令进入容器内部,例如,可以使用以下命令进入redis-node-1容器: ``` docker exec -it redis-node-1 /bin/bash ``` 3. 构建集群关系:在容器内部,使用Redis命令行工具,将新增的节点作为master节点加入原集群。例如,可以使用以下命令将节点redis-node-7加入集群: ``` redis-cli -p 6381 cluster add-node <new_node_ip:port> <existing_node_ip:port> ``` 4. 查看集群状态:使用Redis命令行工具查看集群的状态。例如,可以使用以下命令在节点redis-node-1上查看集群信息: ``` redis-cli -p 6381 cluster info ``` 通过以上步骤,你可以使用docker搭建Redis集群,并查看集群的状态。请根据实际情况进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [阿昌你通过docker搭建Redis集群](https://blog.csdn.net/qq_43284469/article/details/122458602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值