Docker(十):Redis三主三从(扩容、缩容)

news/2024/9/24 1:17:02/

一:启动6台Redis

# privileged=true 获取宿主机root权限
# --cluster-enabled yes 开启redis集群
# --appendonly yes 开启持久化
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6381
docker run -d --name redis-node-2--net host --privileged=true -v /data/redis/share/redis-node-2:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6382
docker run -d --name redis-node-3--net host --privileged=true -v /data/redis/share/redis-node-3:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6383
docker run -d --name redis-node-4--net host --privileged=true -v /data/redis/share/redis-node-4:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6385
docker run -d --name redis-node-6--net host --privileged=true -v /data/redis/share/redis-node-6:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6386

二:配置主从关系

ipconfig
docker exec -it redis-node-1 /bin/bash# --cluster-replicas 1 为每一个master分配一个slave,输入yes同一
# 每台master对应哪台slave是系统自动随机分配的,可能每次都不一样
redis-cli --cluster create 192.168.0.1:6381 192.168.0.1:6382 192.168.0.1:6383 192.168.0.1:6384 192.168.0.1:6385 192.168.0.1:6386 --cluster-replicas 1# 检查集群情况
redis-cli --cluster check 192.168.0.1:6381# 查看集群信息, -c: 表示集群方式连接
redis-cli -p 6381 -c
cluster info
cluster nodes
set k1 v1

三:扩展成四主四从

扩容的时候槽位点开始范围减小,结束范围不变,将每台开始的范围缩小给新的服务器。

docker run -d --name redis-node-7--net host --privileged=true -v /data/redis/share/redis-node-7:/dataredis: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:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6388
docker exec -it redis-node-7 /bin/bash# 加入集群
redis-cli --cluster add-node 192.168.0.1:6387 192.168.0.1:6381# 重新检查集群情况
redis-cli --cluster check 192.168.0.1:6381# 重新分配槽号,输入4096,输入 6387对应的节点编号,输入all
redis-cli --cluster reshard 192.168.0.1:6381# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381# 配置slave和master关系
redis-cli --cluster add-node 192.168.0.1:6388 192.168.0.1:6387 --cluster-slave --cluster-master-id 节点id(6387节点)# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381

四:缩容

  1. 先删除从节点 6388
# 删除节点
redis-cli --cluster del-node 192.168.0.1:6388 节点id# 重新分配槽位,
# 输入4096, 
# 输入那个节点id来接收receiving4096,
# 输入source node: 6387的节点id
# 输入 done
redis-cli --cluster reshard 192.168.0.1:6381# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381# 删除master
redis-cli --cluster del-node 192.168.0.1:6387 节点id# 检查3主3从
redis-cli --cluster check 192.168.0.1:6381

http://www.ppmy.cn/news/1426056.html

相关文章

费曼物理学讲义官网

费曼物理学讲义的官网,https://www.feynmanlectures.caltech.edu/ 网页做的很好,网速也快。

docker run启动一个开发备忘清单速查表 —— 筑梦之路

docker run -itd --name reference -p 3000:3000 registry.cn-beijing.aliyuncs.com/deanmr/reference:latest包含:运维,前端,后端,工具,命令,数据库 部分截图展示:

全新付费进群系统源码 带定位完整版 附教程

搭建教程 Nginx1.2 PHP5.6-7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库(dkewl.sql) 第三步修改/config/database.php里面的数据库地址 第四步修改/config/extra/ip.php里面的域名 第四步设置伪静态thinkphp 总后台账…

C语言---贪吃蛇(一)---准备工作

文章目录 前言1.Win32 API介绍1.1.Win32 API1.2. 控制台程序1.3.控制台屏幕上的坐标[COORD](https://learn.microsoft.com/zh-cn/windows/console/coord-str)1.4.[GetStdHandle](https://learn.microsoft.com/zh-cn/windows/console/getstdhandle)1.5.[GetConsoleCursorInfo](h…

pytorch-手写数字识别之全连接层实现

目录 1. 背景2. nn.Linear线性层2. 实现MLP网络3. train4. 完整代码 1. 背景 上一篇https://blog.csdn.net/wyw0000/article/details/137622977?spm1001.2014.3001.5502中实现手撸代码的方式实现了手写数字识别,本文将使用pytorch的API实现。 2. nn.Linear线性层…

T31开发笔记: 移动侦测

若该文为原创文章,转载请注明原文出处。 最近在测试创安源IPC时发现摄像头的视频流有移动侦测功能 ,拆解后发现使用的是T31,刚好手头上有淘宝买50多点的T31摄像头,就自己现在了个简易DEMO测试一下。 一、硬件和开发环境 1、硬件:…

go并发编程以及socket通信的理解

go并发编程以及socket通信的理解 文章目录 go并发编程以及socket通信的理解一、管道的简单使用二、go中的socket实现通信 一、管道的简单使用 " golang不是通过共享内存来通信,而是通过通信来共享内存 " 1、go简单初始化 // golang不是通过共享内存来通…

机器学习方法在测井解释上的应用-以岩性分类为例

机器学习在测井解释上的应用越来越广泛,主要用于提高油气勘探和开发的效率和精度。通过使用机器学习算法,可以从测井数据中自动识别地质特征,预测岩石物理性质,以及优化油气储层的评估和管理。 以下是机器学习在测井解释中的一些…