当前位置: 首页 > news >正文

1.使用docker 部署redis Cluster模式 集群3主3从

1.使用docker 部署redis Cluster模式 集群3主3从

1.1 先安装docker 启动docker服务,拉取redis镜像 3主3从我们要在docker启动6个容器
docker run --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 --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
--cluster-enabled yes 代表开启集群模式, --appendonly yes 开启持久化

1.2随便进入一台docker redis的容器内命令如下

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

1.3 进入容器后执行下面命令

redis-cli --cluster cerate 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
这里的ip要宿主机的ip,  --cluster-replicas 1 表示为每个master创建一个slave(从节点)节点

1.4进入容器查询集群信息命令如下:

redis-cli -p 6381  这里是链接redis
cluster info 
cluster nodes

执行 cluster info 如图
在这里插入图片描述
执行 cluster nodes 如图
在这里插入图片描述
1.5集群检查命令如下

redis -cli --cluster check 192.168.111.167:6381

1.6如果需要扩容从原来的3主3从变成4主4从。

1.6.1先启动两个容器实例命令如下
docker run --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
docker run --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

1.6.2 进入6387容器中,并加入到之前的集群中命令如下

进入到 redis-node-7 容器中
docker exec -it  redis-node-76387加入到原来的集群中并作为主机命令如下
redis-cli --cluster add-node 192.168.111.167:6387  192.168.111.167:6387:6381
这里的6381之前在集群中就是主机(只要是集群任意一台主机IP地址+端口就可以了)

1.6.3 使用命令检查一下集群

redis -cli --cluster check 192.168.111.167:6387

如下图:
在这里插入图片描述
发现6387没有分配槽位

1.6.4 重现分配槽位命令如下

redis-cli --cluster reshard 192.168.111.167:6381

如下图所示:
在这里插入图片描述
为什么是4096 因为槽位最多是16384 有4个主机所以平均分配 nodeID一定要填 新加入集群的那个ID

在这里插入图片描述
选择 all全部重新分配
在这里插入图片描述
选择yes重新分配槽位

再次检查
在这里插入图片描述
发现6387 已经分配到了槽位,至此6387主机已经OK 这里可以看出,是之前的3台主机每台主机匀了1364个槽位给这台新加进来的主机

1.7 为6387配置从机6388
在这里插入图片描述
至此分配完成

1.8 集群缩减 删除6387,6388

1.8.1先删除6388从节点命令如下

在这里插入图片描述

1.8.2 在重新分配槽位命令如下

在这里插入图片描述
结果如下
在这里插入图片描述
这里天下6387主节点的槽位,之前是4096 所以这里填4096
在这里插入图片描述
在这里插入图片描述
将6387节点删除
在这里插入图片描述
在次输入命令检查
在这里插入图片描述

至此缩容完成

http://www.lryc.cn/news/496563.html

相关文章:

  • vue基础之8:computed对比watch
  • Luban数据插件的用法
  • 指针(上)
  • 张伟楠动手学强化学习笔记|第一讲(上)
  • python脚本:Word文档批量转PDF格式
  • 性能测试常见面试问题和答案
  • uniapp进阶技巧:如何优雅地封装request实例
  • 实验五、流式视频服务程序mjpg-streamer移植实验
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验三----学校选址与路径规划(超超超详细!!!)
  • L16.【LeetCode笔记】前序遍历
  • 泰州榉之乡全托机构探讨:自闭症并非家庭的 “末日”
  • BiGRU:双向门控循环单元在序列处理中的深度探索
  • 【vue-router】Vue-router如何实现路由懒加载
  • Linux网络编程基础
  • MySQL中的幻读问题
  • AI后端工程师面试题的内容
  • MFC工控项目实例三十五读取数据库数据
  • OpenWrt -制作ubifs文件系统的固件
  • C++ - 继承
  • 华为服务器使用U盘重装系统
  • 网络分层模型( OSI、TCP/IP、五层协议)
  • 前端开发 之 15个页面加载特效上【附完整源码】
  • Spring Boot使用JDK 21虚拟线程
  • 《从0到1常用Map集合核心摘要 + 不深不浅底层核心》
  • 12 设计模式之工厂方法模式
  • spaCy 入门与实战:强大的自然语言处理库
  • python包的管理和安装——笔记
  • Vue前端页面内嵌套本项目iframe窗口的通信传输方式
  • 【WEB开发.js】addEventListener事件监听器的绑定和执行次数的问题(小心踩坑)
  • 用于LiDAR测量的1.58um单芯片MOPA(一)