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

2024-04-20 02:28

本文主要是介绍Docker(十):Redis三主三从(扩容、缩容),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:启动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

这篇关于Docker(十):Redis三主三从(扩容、缩容)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919062

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp