linux系统容器搭建redis集群

容器搭建redis集群

  • 安装redis集群
    • 三主三从redis集群搭建
    • 主从容错切换迁移
      • 数据读写存储
      • 容错切换迁移
    • 主从扩容
    • 主从缩容

安装redis集群

三主三从redis集群搭建

cluster集群模式
哈希槽分区进行亿级数据存储关闭防火墙,启动docker
systemctl start docker新建6个redis容器实例
docker run -d --name 容器名 --net host --privileged=true -v 宿主机挂载地址:容器挂载地址 镜像名 --cluster-enabled yes --appendonly yes --port 端口
--net host             使用宿主机的ip和端口
--privileged=true      开启宿主机root权限
--cluster-enabled yes  开启集群
--appendonly yes       打开持久化配置docker run -d --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 7001docker run -d --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 7002docker run -d --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 7003docker run -d --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 7004docker run -d --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 7005docker run -d --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 7006docker ps    //查看正在运行的容器进入容器为六台机器构建集群关系
docker exec -it redis-node-1 /bin/bash     //进入一号机构建主从关系构建主从关系
进入docker容器后才能执行一下命令,且注意自己的真实IP地址,ip是指宿主机ip,端口是启动redis镜像的端口
redis-cli --cluster create ip:端口 ip:端口 ip:端口 ip:端口 ip:端口 ip:端口 --cluster-replicas 1
--cluster-replicas 1:表示为每个master创建一个slave节点链接进入6831作为切入点,查看集群状态链接进入6831作为切入点,查看节点状态cluster info     //查看集群信息
cluster nodes    //本集群有哪些节点,以及各自的状态

主从容错切换迁移

数据读写存储

启动6台机子构成的服务器集群并通过exec进入
docker exec -it 主服务器1 /bin/bashredis-cli -p 主服务器1         //单机方式连接
redis-cli -p 主服务器1 -c      //集群方式连接进入后set k1 v1              //添加数据查看集群信息:
redis-cli --cluster check ip:服务器集群任一端口--cluster check:查看集群信息参数

容错切换迁移

redis集群主从切换主6381和从机切换,先停止主机6381再次查看集群信息
6381本来是6382的主服务器,但是6381宕机了,6382上位
docker exec -it 从一的主机名 /bin/bashredis-cli-p 6382 -ccluster nodes6382     master
6381     file6381恢复后,6382还是master,6381成了slave端先还原之前的3主3从
停掉6382,将master还给6381,在启用6382,6382为slave端查看集群状态
redis-cli --cluster check 自己ip:6381主从状态和之前一致

主从扩容

三主三从扩容成四主四从新建两个节点+新建后启动+查看节点
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 7007
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 7008查看运行中的容器docker ps进入6387容器实例内部
docker exec -it redis-node-7 /bin/bash将新增的6387节点(空槽号)作为master节点加入原集群
redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381
6387 就是将要作为master新增节点
6381 就是原来集群节点检查集群情况第1次
redis-cli --cluster check 真实ip地址:6381重新分派槽号
redis-cli --cluster reshard IP地址:端口号
redis-cli --cluster reshard 192.168.111.147:6381分配多少个槽点
新添加的主节点id
all 全部分配检查集群情况第2次
redis-cli --cluster check 真实ip地址:6381槽号分派说明
重新分配成本太高,所以从之前的槽点各自匀出来一部分,从旧节点分别匀出坑位给新节点为新添加的主节点分配从节点
redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新添加主节点IDredis-cli --cluster add-node 192.168.111.147:6388 192.168.111.147:6387 --cluster-slave --cluster-master-id e4781f644d4a4e4d4b4d107157b9ba8144631451检查集群情况第3次
redis-cli --cluster check 真实ip地址:6381

主从缩容

四主四从变为三主三从检查集群情况获得从节点ID
redis-cli --cluster check ip:端口将从节点删除
redis-cli --cluster del-node ip:从机端口 从节点IDredis-cli --cluster del-node 192.168.111.147:6388 5d149074b7e57b802287d1797a874ed7a1a284a8集群情况检查
redis-cli --cluster check ip:端口将主节点的槽号清空,重新分配下述操作是将清出来的槽号都给第一个主节点
redis-cli --cluster reshard ip:端口
分配多少个槽点
接收槽位的节点id
被收回槽位的节点id
done检查集群情况第二次
redis-cli --cluster check ip:端口将主节点删除
redis-cli --cluster del-node ip:端口 主节点IDredis-cli --cluster del-node 192.168.111.147:6387 e4781f644d4a4e4d4b4d107157b9ba8144631451检查集群情况第三次
redis-cli --cluster check ip:端口

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

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

相关文章

高项--价值驱动的项目管理知识体系

说要参加软考已经过去两周了,到现在也没啥成果,今天决定还是动手记录小一些东西吧,也方便下次打开手机的时候可以查看记忆。总体上看可以分为三个部分:信息技术、项目管理、法律法规,而项目管理里面最终要的就是这个项…

Oracle 12c dataguard查看主备库同步情况的新变化

导读 本文介绍Oracle 12c dataguard在维护方面的新变化 前提:主库备库的同步是正常的。 1、主库上查看archive Log list SYScdb1> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination…

JMM(Java Memory Model)内存模型

Java内存模型,规范了计算机内存与java虚拟机之间的协调工作,即规定了 将java 虚拟机中的变量存储到内存中和从内从中取出来的内存细节。 Java内存模型中规定了所有的变量都存储在内存中,每条线程还有自己的工作内存,线程对变量的…

【SpringCloud微服务实战03】Nacos 注册中心

一、Nacos安装 官方文档安装Nacos教程:Nacos 快速开始 这里安装的是1.4.7版本,安装之后访问http://127.0.0.1:8848/nacos 管理界面如下:(用户名:nacos,密码:nacos) 二、Nacos服务注册和发现 1、在父工程中配置文件pom.xml 中添加spring-cloud-alilbaba的管理依赖:…

如何快速制作电商效果图?

我们都知道,做电商,你的产品效果是很重要,有些产品只要看一眼,消费者就想着加入购物车或者购买。 想快速制作电商效果图,我们可以借助以下几个方法。 1、使用电商模版 网上有很多免费和付费的电商效果图模板,&#x…

基于RK3588+Codesys+Xenomai的ARM+LINUX实时硬件平台的软PLC解决方案

产品概述 公司推出基于瑞芯微RK3588架构的AI边缘计算主板,RK3588是新一代国产旗舰高性能64位八核处理器,采用8nm工艺,具有高算力、低功耗、超强多媒体、丰富数据接口等特点。搭载四核A76四核A55的八核CPU和ARM G610MP4 GPU,内置6…

顺序表详解

顺序表是最简单的一种数据结构之一,它的本质上就是数组,我们将顺序表分为静态和动态的两种形式,静态顺序表只能存储有限个数据,而动态顺序表可以根据自己的需求来开辟空间存储数据。 下面是静态顺序表的结构,本质上就是…

一文了解Spring的SPI机制

文章目录 一文了解Spring的SPI机制Java SPIServiceLoader Spring SPISpringboot利用Spring SPI开发starter 一文了解Spring的SPI机制 Java SPI SPI 全称 Service Provider Interface ,是 Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用…

vue 使用element plus 菜单时,折叠文字不消失

问题: 菜单折叠时,title文本无法消失,同时下拉箭头还会存在 解决方法: 查看项目中是否有div标签 原因 div和p标签都是块级元素,可能是这个原因 所以把项目中的p标签改为span标签 div改为template即可解决

IDEA编写各种WordCount运行

目录 一、编写WordCount(Spark_scala)提交到spark高可用集群 1.项目结构 2.导入依赖 3.编写scala版的WordCount 4.maven打包 5.运行jar包 ​6.查询hdfs的输出结果 二、本地编写WordCount(Spark_scala)读取本地文件 1.项目结构 2.编写scala版的WordCount 3.编辑Edit …

SSM整合项目(删除家居 + 分页查询)

1.删除家居 1.需求分析 2.编写Service层 1.FurnService.java 添加方法 //删除家居public void del(Integer id);2.FurnServiceImpl.java 实现方法 Overridepublic void del(Integer id) {furnMapper.deleteByPrimaryKey(id);}3.单元测试 Testpublic void del() {furnService.…

微信公众号调用沙箱支付

沙箱支付 登录支付宝开放平台,选择底部沙箱支付 下载密钥生成工具 生成应用私钥与公钥,上传沙箱支付,获得支付宝公钥 配置支付通知与支付回调地址 SpringBoot配置 yml文件 这里的地址必须与沙箱配置的一样 controller package com.zq…

植物病害识别:YOLO水稻病害识别数据集(11000多张,yolo标注)

YOLO水稻病害识别数据集,包含叶斑病,褐斑病,细菌性枯萎病,东格鲁病毒病4个常见病害类别,共11000多张图像,yolo标注完整,可直接训练。 适用于CV项目,毕设,科研&#xff0c…

第十五届蓝桥杯-UART接收不定长指令的处理

学习初衷: 不仅仅为了比赛! 目录 一、问题引入 二、UART常用的三种工作模式 1.UART工作在中断模式 2.UART工作在DMA模式下 3.uart工作在接收转空闲的模式下 三、获取指令中需要的数据 四、printf函数的实现 一、问题引入 问题引入:请…

【Java】仓库管理系统 SpringBoot+LayUI+DTree(源码)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

Java状态模式源码剖析及使用场景

状态模式 一、介绍二、订单处理系统中使用三、Spring 中事务怎么使用状态模式? 一、介绍 状态模式(State Pattern)是一种行为型设计模式,它允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 状态模式的核心思想是将对象的状态封装成独立的类,使…

深度学习Top10算法

自2006年深度学习概念被提出以来,20年快过去了,深度学习作为人工智能领域的一场革命,已经催生了许多具有影响力的算法。以下是深度学习top10算法,它们在创新性、应用价值和影响力方面都具有重要的地位。 1、深度神经网络&#xf…

鸿蒙开发(四)-低代码开发

鸿蒙开发(四)-低代码开发 本文主要介绍下鸿蒙下的低代码开发。 鸿蒙低代码是指在鸿蒙操作系统进行应用开发时,采用简化开发流程和减少编码量的方式来提高开发效率。 1:开启低代码开发 首先我们打开DevEco Studio .然后创建工程。 如图所示&#xff…

定制红酒:如何根据客户需求调整红酒口感与风格

在云仓酒庄洒派,云仓酒庄洒派深知不同消费者对于红酒的口感与风格有着不同的喜好和需求。因此,云仓酒庄洒派根据消费者的具体要求,灵活调整红酒的口感与风格,以满足他们的期望。 首先,云仓酒庄洒派会与消费者进行深入的…

AHU 汇编 实验三

实验名称:实验三 串操作指令 二、实验内容: 在数据段定义缓冲区,从键盘接收两串字符到两个缓冲区,将第二串中与第一串字符不一致的字符显示在屏幕。 实验过程: 源代码: data segmentmess1 db 16,?,16…