docker高级篇第二章-分布式存储之实战案例:3主3从redis集群搭建

news2024/11/24 12:38:24

在上一篇文章中,我们介绍了分布式存储的三种方式:hash取余分区、一致性哈希算法分区以及哈希槽分区。本篇,我们就来实战3主3从的哈希槽Redis集群搭建。

大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

本次案例分为:三主三从Redis集群配置、主从容错切换迁移案例、主从扩容案例、主从缩容案例。如下图:

 

本文主要内容:3主3从redis集群扩容缩容配置案例架构

3主3从redis集群配置

步骤:

1:关闭防火墙及启动docker后台服务

2:新建6个docker容器实例

3:进入容器并为6台集群构建集群关系

4:查看集群状态

 

1:创建6个Redis的容器实例

命令:

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

 

命令解析:

docker run :创建并运行docker容器实例

--name xxx:给容器起个名字

--net host:使用宿主机的IP和端口。默认

-- privileged=true:获取宿主机root用户权限

-v /path:容器卷。

--cluster-enabled yes:开启Redis集群

-- appendonly yes :开启持久化

 

需要六台。就复制6个。

docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-nod-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/redis/share/redis-nod-2:/data redis: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-nod-3:/data redis: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-nod-4:/data redis: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-nod-5:/data redis: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-nod-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

2:构建主从关系

进入容器内部后,构建主从关系。这里我们就进入node1中

命令:

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

构建主从命令公式:

redis-cli --cluster create ip:端口 ip:端口 ... --cluster-replicas 1

命令说明:

--cluster-replicas 1表示为每个master创建一个slave节点

ip:ip是宿主机的ip

端口:端口是每个redis的端口。

实战执行的命令:

redis-cli --cluster create 192.168.50.128:6381 192.168.50.128:6382 192.168.50.128:6383 192.168.50.128:6384 192.168.50.128:6385 192.168.50.128:6386 --cluster-replicas 1

注意修改成你们自己宿主机的ip

 

执行后,我们可以看到自动就三主三从了。

可以看到把16384个槽分成3个

 

询问是否above configuratin?输入yes

 

3:查看集群状态

进入6381这台Redis容器中,查看集群状态

用到 cluster info / cluster nodes

先进入到6381这台Redis容器中,使用redis的cli端链接。命令:

docker exec -it 41c16958a597 /bin/bash
redis-cli -p 6381

 

使用 cluster info命令查看

使用 cluster nodes命令查看

 

那么怎么从nodes信息知道哪个master挂哪个slave呢?

 

从上图,我们可以看到:

16383这个master尾部字符串为:e00bdee.

16386这个slave对应尾部字符串也是:e00bdee

所以,我们就可以得到关系:master 83这台机器对应的从机器就是86了。

其他两组依次类推。

81==>84

82==>85

83==>86

架构图为:

搭建完成之后的Redis三主三从集群架构图如下:

 

结束语

如操作有问题欢迎去 我的 个人博客(www.kaigejava.com)留言或者   微信公众号(凯哥Java)留言交流哦。

本系列教程直通车

直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:

【图文教程】Windows11下安装Docker Desktop

【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

【Docker学习系列】Docker学习1-docker安装

【Docker学习系列】Docker学习2-docker设置镜像加速器

【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令

【Docker学习系列】Docker学习系列3:常用命令之容器命令

【Docker学习系列】Docker学习4-常用命令之重要的容器命令

【Docker教程系列】Docker学习5-Docker镜像理解

【Docker教程系列】Docker学习6-Docker镜像commit操作案例

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

「Docker学习系列教程」9-Docker容器数据卷介绍

「Docker学习系列教程」10-Docker容器数据卷案例

Docker学习11-Docker常规方式安装软件

「Docker学习系列教程」基础篇小总结及高级篇预告

docker高级篇1-dockeran安装mysql主从复制

docker高级篇2-分布式存储之三种算法

【Docker学习教程系列汇总】笔记及遇到问题解决文章


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis深度专题】「核心技术提升」分析探究如何实现LFU的热点key发现机制以及内部的Scan扫描技术的原理

前言介绍 业务中存在访问热点是在所难免的,redis也会遇到这个问题,然而如何发现热点key一直困扰着许多用户,redis4.0为我们带来了许多新特性,其中便包括基于LFU的热点key发现机制。 Least Frequently Used Least Frequently Us…

基于节点导纳矩阵的三相配电系统建模(Matlab实现)

目录 1 概述 2 算例仿真 2.1 IEEE 37节点测试 2.2 EEE 123 节点测试 2.3 500 节点测试 2.4 906 母线低压馈线 2.5 小节 3 Matlab代码实现 1 概述 本文的主要是适用于 Z-Bus 潮流的三相配电系统建模。提供了星形和三角形恒功率、恒电流和恒阻抗负载的详细模型。布置了…

无线投屏(智慧教室)

大家好,我是小杜,打工人又开始了这一周的“搬砖”了。周末两天很好的“休息”后,今天浑身充满了干劲,都可以打死一头“牛”,从今天开始就要参与公司的一些业务了,剩余时间就是打工人最喜欢的学习时间了。 …

Nacos系列——Java SDK(2.x版本)2-1

Nacos系列——Java SDK(2.x版本)2-1资源地址README概述(intro)Nacos Java SDK 官方文档(official doc address)工程说明(project intro )工程目录(project dir)pom依赖(pom dependen…

面向切面编程

Spring AOP简介 AOP把业务功能分为核心、非核心两部分。 核心业务功能:用户登录、增加数据、删除数据。非核心业务功能:性能统计、日志、事务管理。 在Spring的面向切面编程(AOP)思想里,非核心业务功能被定义为切面。…

Springboot+echarts:ajax前后端分离交互

文章目录一、样例说明二、后端代码实现2.1 依赖2.2 applicaiton.properties配置2.3 TotalCountData类实现2.4 totalCountDataMapper接口2.5 totalCountDataMapper.xml实现2.6 Controller层代码三、前端代码一、样例说明 通过mysql存储数据,springboot整合mybatis框…

从云到「链」,京东云成为中国第四朵云背后

在产业加速到数实融合加速的今年,云计算不再是云厂商的唯一考校指标。 作者|叶子 出品|产业家 京东云再次破圈。 信号来自接连发布的几份报告。在国际权威研究机构Forrester发布的名为《The Forrester Wave:Public Cloud Development And Infrast…

[HCTF 2018]WarmUp

目录 考点 writeup 考点 文件上传漏洞&#xff0c;代码审计 writeup 先进入页面先查看源码 发现source.php,打开该php文件&#xff0c;进行审计代码后发现是文件包含类题目 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$…

JaveWeb框架(三):实战项目Servlet 实现管理系统登录注册功能

MVC实战项目 仓储管理系统需求&#xff1a;实现基本的登录和注册功能MVC实战项目&#xff1a;登录和注册登录功能实现注册功能实现总结Redis章节复习已经过去&#xff0c;新的章节JavaWeb开始了&#xff0c;这个章节中将会回顾JavaWeb实战项目 仓储管理 代码会同步在我的gitee中…

Linux内核调试技术之kdump配置与使用

概述 kdump是Linux内核发生崩溃时转储内存的一种机制&#xff0c;当内核发生错误时&#xff0c;kdump会将当前内核使用的内存导出为镜像文件&#xff08;通常为vmcore&#xff09;保存到硬盘上&#xff0c;之后可以使用crash等工具对内核错误原因进行分析。 kdump基本原理 k…

R语言中回归和分类模型选择的性能指标

有多种性能指标来描述机器学习模型的质量。但是&#xff0c;问题是&#xff0c;对于问题正确的方法是什么&#xff1f;在这里&#xff0c;我讨论了选择回归模型和分类模型时最重要的性能指标。请注意&#xff0c;此处介绍的性能指标不应用于特征选择&#xff0c;因为它们没有考…

如何保证分布式事务?

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【一心同学】&#xff0c;一位上进心十足的【Java领域博主】&#xff01;&#x1f61c;&#x1f61c;&#x1f61c; ✨【一心同学】的写作风格&#x…

Docker: 容器与镜像

文章目录1、docker 环境搭建1.1、docker 安装1.1.1、centos 安装1.1.2、ubuntu 安装1.2、添加到 docker 组1.3、docker 镜像源2、docker 概念2.1、docker 背景2.2、docker 架构2.3、docker 与 vm3、docker 容器隔离4、docker 命令4.1、环境信息4.2、日志信息4.3、容器命令4.4、…

Mac最先进的API工具-RapidAPI for Mac

一、前言 当使用 Mac 进行接口测试的时候&#xff0c;一般都会想到接口测试工具 Postman、Jmeter。 Postman 以其页面友好&#xff0c;功能简单&#xff0c;可以快速上手进行接口测试。而 Jmeter 除了测接口外&#xff0c;还可以进行接口自动化测试、性能测试等。 本篇将介绍…

完整企业官网源码,前端基于Vue+ElementUI,后台基于基于core3 webapi,含数据库文件,含详情安装部署文档

完整企业官网源码&#xff0c;前端基于VueElementUI&#xff0c;后台基于基于core3 webapi&#xff0c;含数据库文件&#xff0c;含详情安装部署文档 完整代码下载地址&#xff1a;完整企业官网源码 某工程管理有限公司企业官网 前端 新版本改进 整体重构&#xff0c;结构…

利用 Flow Simulation 快速和经济高效地解决传热难题

探寻传热问题的有效解决方案已成为新产品研发过程中一个愈来愈重要的部分。几乎一切事物都会经历某种程度的发热或冷却&#xff0c;而且对于许多产品来说&#xff0c;如现代电子设备、医疗设备和空气调节 (HVAC) 系统&#xff0c;热管理已成为避免过度发热和实现功能正常运行的…

Redis实战——附近商家(GEO的使用)

1. 什么是Geo&#xff1f; GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; GEOADD&#xff1a;添加一个地理空间信息&#…

基于WEB多媒体电子贺卡平台

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 网站前台&#xff1a;关于我们、联系我们、资讯信息、贺卡类型、贺卡信息、贺卡评论 管理员&#xff1a; 1、管理关于我…

[附源码]Python计算机毕业设计Django校园服装租赁系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

毕业设计 单片机墨水屏阅读器(单词卡) - 物联网 嵌入式

文章目录0 前言1 简介2 主要器件3 实现效果4 设计原理部分核心代码5 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长自…