Redis7搭建主从+集群三主三从主从关系由集群分配

news2024/10/5 19:19:34

目录文件不清晰的去Redis7搭建主从+哨兵了解

别忘记关闭防火墙

hash算法一致性

1背景–主从关系由客户端构建分配

三台虚拟机,一台虚拟机搭建两个redis 且两个不同的端口

第一台ip和分配两个端口	6381 6382 ---  		192.168.154.128 6381 6382
第二台ip和分配两个端口 6383 6384 ---		192.168.154.129 6383 6384
第三台ip和分配两个端口	6385 6386 ---		192.168.154.130 6385 6386

2在myredis目录下创建目录

命令 mkdir cluster 不要用 -->mkdir /cluster 加这 斜杠 / 就会报错,因为 斜杠 是在根目录下创建目录
或者用 mkdir -p /myredis/cluster 创建树形目录

3配置文件的信息放在对应虚拟机的myredis/cluster下边

redisCluster6381.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6381
logfile "/myredis/cluster/cluster6381.log"
pidfile /myredis/cluster6381.pid
dir /myredis/cluster
dbfilename dump6381.rdb
appendonly yes
appendfilename "appendonly6381.aof"
requirepass 111111
masterauth 111111

redisCluster6382.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6382
logfile "/myredis/cluster/cluster6382.log"
pidfile /myredis/cluster6382.pid
dir /myredis/cluster
dbfilename dump6382.rdb
appendonly yes
appendfilename "appendonly6382.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 5000

redisCluster6383.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6383
logfile "/myredis/cluster/cluster6383.log"
pidfile /myredis/cluster6383.pid
dir /myredis/cluster
dbfilename dump6383.rdb
appendonly yes
appendfilename "appendonly6383.aof"
requirepass 111111
masterauth 111111

cluster-enabled yes
cluster-config-file nodes-6383.conf
cluster-node-timeout 5000

redisCluster6384.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6384
logfile "/myredis/cluster/cluster6384.log"
pidfile /myredis/cluster6384.pid
dir /myredis/cluster
dbfilename dump6384.rdb
appendonly yes
appendfilename "appendonly6384.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6384.conf
cluster-node-timeout 5000

redisCluster6385.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6385
logfile "/myredis/cluster/cluster6385.log"
pidfile /myredis/cluster6385.pid
dir /myredis/cluster
dbfilename dump6385.rdb
appendonly yes
appendfilename "appendonly6385.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6385.conf
cluster-node-timeout 5000

redisCluster6386.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6386
logfile "/myredis/cluster/cluster6386.log"
pidfile /myredis/cluster6386.pid
dir /myredis/cluster
dbfilename dump6386.rdb
appendonly yes
appendfilename "appendonly6386.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6386.conf
cluster-node-timeout 5000

4三台虚拟机分别在myredis/cluster目录下启动

第一台(192.168.154.128)
[root@localhost cluster]# redis-server redisCluster6381.conf
[root@localhost cluster]# redis-server redisCluster6382.conf
第二台(192.168.154.129)
[root@localhost cluster]# redis-server redisCluster6383.conf
[root@localhost cluster]# redis-server redisCluster6384.conf
第三台(192.168.154.130)
[root@localhost cluster]# redis-server redisCluster6385.conf
[root@localhost cluster]# redis-server redisCluster6386.conf

5通过redis-cli命令为6台机器构建集群关系

replicas 1 为每个主机分配一个从机 slave
-a 111111 这个是客户端登录的密码 具体密码是根据信息配置的来确定客户端密码

redis-cli -a 111111 --cluster create --cluster-replicas 1 192.168.154.128:6381 192.168.154.128:6382 192.168.154.129:6383 192.168.154.129:6384 192.168.154.130:6385 192.168.154.130:6386

6集群构建成功

在这里插入图片描述
在这里插入图片描述

7查看集群常用命令之间的关系 cluster nodes

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

8异常信息

[ERR] Node 192.168.154.129:6384 is not empty
在这里插入图片描述

8.1处理方法–客户端登录然后清除和重置:flushall 和 cluster reset

在这里插入图片描述

8.2redis-cli --cluster call : FLUSHALL

redis客户端如何查看中文 --raw

在这里插入图片描述

9插入数据失败,(error) MOVED 8941 192.168.154.129:6383

一定注意槽位的范围区间,需要路由到位,路由到位,路由到位,路由到位
就是说槽位之间要实现能跳转,才能达到集群的目的即数据之间共享的作用
在这里插入图片描述

9.1 解决办法 redis登录 携带 -c 实现集群间的读写

之前 redis-cli -a 111111 -p 6381
正确 redis-cli -a 111111 -p 6381 -c
原因:hash算法算出的 hash_slot 槽位不在此主机上,需要路由跳转重定向到另一台主机提供的槽位上,达到集群的效果即共享数据集的意义

在这里插入图片描述

10当某个主节点宕机其slave节点会顶上去成为master

在这里插入图片描述

在这里插入图片描述

11 机器宕机故障自动转移如何恢复原来是主机master从属关系?? cluster failover

在这里插入图片描述

13查看key所在槽位或者查询某个定义的key将会落的槽位

keyslot key  

在这里插入图片描述

13主从扩容

redisCluster6387.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 6387
logfile "/myredis/cluster/cluster6387.log"
pidfile /myredis/cluster6387.pid
dir /myredis/cluster
dbfilename dump6387.rdb
appendonly yes
appendfilename "appendonly6387.aof"
requirepass 111111
masterauth 111111

cluster-enabled yes
cluster-config-file nodes-6387.conf
cluster-node-timeout 5000

redisCluster6388.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 6388
logfile "/myredis/cluster/cluster6388.log"
pidfile /myredis/cluster6388.pid
dir /myredis/cluster
dbfilename dump6388.rdb
appendonly yes
appendfilename "appendonly6388.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6388.conf
cluster-node-timeout 5000

13.1上传到 第三台虚拟机上

在这里插入图片描述

13.2启动87/88两个新的节点实例,此时他们自己都是master

启动

[root@localhost cluster]# redis-server redisCluster6387.conf
[root@localhost cluster]# redis-server redisCluster6388.conf

看当前节点信息 cluster nodes

在这里插入图片描述

13.3加入集群(由老人带新人入集群)–绿色回复

将新增的6387作为master节点加入原有集群
redis-cli -a 密码 --cluster add-node 自己实际IP地址(新员工):端口号 自己实际IP地址(老员工):端口号
redis-cli -a 111111  --cluster add-node 192.168.154.130:6387 192.168.154.130:6385
6387 就是将要作为master新增节点
6385 就是原来集群节点里面的领路人,相当于6387拜拜6385的码头从而找到组织加入集群

在这里插入图片描述

13.4 检查集群情况第1次–槽位分配为空

redis-cli -a 111111 --cluster check 192.168.154.130:6385

在这里插入图片描述

13.5为最新master分配槽位

重新分派槽号
命令:redis-cli -a 密码 --cluster reshard IP地址:端口号
redis-cli -a 111111 --cluster reshard 192.168.154.130:6385

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

13.6为主节点6387分配从节点6388

命令:redis-cli -a 密码 --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID
 
redis-cli -a 111111 --cluster add-node 192.168.154.130:6388 192.168.154.130:6387 --cluster-slave --cluster-master-id xxx新主机idxxx-------这个是6387的编号,按照自己实际情况
------------------------------
redis-cli -a 111111 --cluster add-node 192.168.154.130:6388 192.168.154.130:6387 --cluster-slave --cluster-master-id a6f8f63687c2a3e26a1571fe8e1e6cc399e5677d

在这里插入图片描述

扩容成功–查看槽位分配情况

redis-cli -a 111111 --cluster check 192.168.154.130:6387

在这里插入图片描述

14主从缩容

查看目前运行状态

15集群常用命令

在这里插入图片描述

15集群异常–一般三主三从才对外服务

可以修改这个默认配置
cluster-require-full -coverage no
在这里插入图片描述

12总结

1、槽位范围 0 -16384 也就是 0-2^14
2、每个主机master 提供的槽位 是根据 16384 /主机数量 约等于的平摊槽位
3、

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

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

相关文章

分析型数据库:分布式分析型数据库

分析型数据库的另外一个发展方向就是以分布式技术来代替MPP的并行计算,一方面分布式技术比MPP有更好的可扩展性,对底层的异构软硬件支持度更好,可以解决MPP数据库的几个关键架构问题。本文介绍分布式分析型数据库。 — 背景介绍— 目前在分布…

人工智能前沿——「全域全知全能」人类新宇宙ChatGPT

🚀🚀🚀OpenAI聊天机器人ChatGPT——「全域全知全能」人类全宇宙大爆炸!!🔥🔥🔥 一、什么是ChatGPT?🍀🍀 ChatGPT是生成型预训练变换模型(Chat G…

springBoot --- mybatisPlus自动生成代码

mybatisPlus自动生成代码mybatisPlus自动生成代码pom.xmlapplication.yml自动生成代码测试主启动类生成目录结果使用插件 --- 版本要求:3.4.0 版本以上pom.xml更新mybatisplus插件版本mp报错‘AutoGenerator()‘ has private access in ‘com.baomidou.mybatisplus.…

离散数学_九章:关系(2)

关系9.2 n元关系及其应用 1、n元关系,关系的域,关系的阶2、数据库和关系 1. 数据库 2. 主键 3. 复合主键 3、n元关系的运算 1. 选择运算 (Select) 2. 投影运算 (Project) 3. 连接运算 9.2 n元关系及其应用 n元关系:两个以上集合的元素间…

网络安全从业人员应该如何提升自身的web渗透能力?

前言 web 渗透这个东西学起来如果没有头绪和路线的话,是非常烧脑的。 理清 web 渗透学习思路,把自己的学习方案和需要学习的点全部整理,你会发现突然渗透思路就有点眉目了。 程序员之间流行一个词,叫 35 岁危机,&am…

Amazon SageMaker测评分享,效果超出预期

一、前言随着科技的进步和社会的发展,人工智能得到了愈加广泛的重视,特别是最近大火的Chatgpt,充分展现了研发通用人工智能助手广阔的研究和应用前景。让越来越多的组织和企业跟风加入到人工智能领域的研究中,但机器学习的实施是一…

项目---基于TCP的高并发聊天系统

目录 服务端 服务端视角下的流程图 一、数据库管理模块 1.1 数据库表的创建 1.2 .对于数据库的操作 1.2.1首先得连接数据库 1.2.2执行数据库语句 1.2.3 返回数据库中存放的所有用户的信息 1.2.4返回数据库中存放的所有用户的好友信息 二、用户管理模块 2.1、UserInfo类&…

深度学习和人工智能之间是什么样的关系?

深度学习与人工智能概念的潜在联系,我们依然借助维恩图来说明,如图4.1所示。 1、人工智能 “人工智能”这个概念新鲜时髦但又含混模糊,同时包罗万象。尽管如此,我们仍尝试对 人工智能进行定义:用一台机器处理来自其周围环境的信息,然后将这些…

学习系统编程No.10【文件描述符】

引言: 北京时间:2023/3/25,昨天摆烂一天,今天再次坐牢7小时,难受尽在不言中,并且对于笔试题,还是非常的困难,可能是我做题不够多,也可能是没有好好的总结之前做过的一些…

15.transformer全解

欢迎访问个人网络日志🌹🌹知行空间🌹🌹 文章目录1.基础介绍2.网络结构2.1 Input/Output Embedding2.2 自注意力机制 self-attention2.3 point-wise全连接层2.4 位置编码 Position Encoding3.输入处理过程示例4.代码实现1.基础介绍…

论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines

HMER论文系列 1、论文阅读和分析:When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客 2、论文阅读和分析:Syntax-Aware Network for Handwritten Mathematical Expression Recognition_KPer_Yang的博客-CSDN博客 3、论…

自然语言处理(七): Deep Learning for NLP: Recurrent Networks

目录 1. N-gram Language Models 2. Recurrent Neural Networks 2.1 RNN Unrolled 2.2 RNN Training 2.3 (Simple) RNN for Language Model 2.4 RNN Language Model: Training 2.5 RNN Language Model: Generation 3. Long Short-term Memory Networks 3.1 Language M…

论文阅读【14】HDLTex: Hierarchical Deep Learning for Text Classification

论文十问十答: Q1论文试图解决什么问题? 多标签文本分类问题 Q2这是否是一个新的问题? 不是 Q3这篇文章要验证一个什么科学假设? 因为文本标签越多,分类就越难,所以就将文本类型进行分层分类,这…

【人工智能与深度学习】判别性循环稀疏自编码器和群体稀疏性

【人工智能与深度学习】判别性循环稀疏自编码器和群体稀疏性 判别类循环稀疏自编码器 (DrSAE)组稀疏组稀疏自编码器的问与答图像级别训练,无权重分享(weight sharing)的局域过滤器 (local filters)判别类循环稀疏自编码器 (DrSAE) DrSAE的设计结合了稀疏编码(稀疏自编码器)…

数据库并发控制基本概念和基本技术

并发控制与基本技术一、并发控制1. 概述2. 并发访问可能出现的问题二、并发控制的主要技术1、基本技术2、封锁及锁的类型2.1、什么是封锁2.2、基本封锁类型2.2.1、排它锁(Exclusive Locks,简记为 X 锁)2.2.2、共享锁(Share Locks&…

基于ArkUI框架开发-ImageKnife渲染层重构

ImageKnife是一款图像加载缓存库,主要功能特性如下: ●支持内存缓存,使用LRUCache算法,对图片数据进行内存缓存。 ●支持磁盘缓存,对于下载图片会保存一份至磁盘当中。 ●支持进行图片变换:支持图像像素源图…

【SSconv:全色锐化:显式频谱-空间卷积】

SSconv: Explicit Spectral-to-Spatial Convolution for Pansharpening (SSconv:用于全色锐化的显式频谱-空间卷积) 全色锐化的目的是融合高空间分辨率的全色(PAN)图像和低分辨率的多光谱(LR-MS&#xff…

【微服务】6、一篇文章学会使用 SpringCloud 的网关

目录一、网关作用二、网关的技术实现三、简单使用四、predicates(1) 网关路由可配置的内容(2) 路由断言工厂(Route Predicate Factory)五、filters(1) GatewayFilter(2) 给全部进入 userservice 的请求添加请求头(3) 全局过滤器 —— GlobalFilter(4) 过…

PX4从放弃到精通(二十七):固定翼姿态控制

文章目录前言一、roll/pitch姿态/角速率控制二、偏航角速率控制三、主程序前言 固件版本 PX4 1.13.2 欢迎交流学习,可加左侧名片 一、roll/pitch姿态/角速率控制 roll/pitch的姿态控制类似,这里只介绍roll姿态控制, 代码位置: …

如何确定NetApp FAS存储系统是否正常识别到了boot device?

近期处理了几个NetApp FAS存储控制器宕机的案例,其中部分有代表性的就是其实控制器并没有物理故障,问题是控制器里面的boot device的SSD盘出现了问题。这里给大家share一下如何确定系统是否成功识别到了boot device设备。 对于很多非专业人士来说&#…