linux—redis集群搭建(主从哨兵)

linux—redis集群搭建(主从哨兵)

文章目录

  • linux—redis集群搭建(主从哨兵)
          • 一,配置文件并启动一个 Redis 服务器实例
          • 二,创建多个reids实例 (复制并定制化 Redis 配置文件)
          • 三,配置客户端的主从关系
          • 四,配置哨兵

一,配置文件并启动一个 Redis 服务器实例

首先确保自己已经安装了redis,然后找到自己的安装位置,查看列表

在这里插入图片描述

切换到root根目录 创建myreids目录(将集群搭建到root目录 以便出现错误 不影响原文件)

cd /root                         #切换到root根目录
ll                               #查看该目录下所有列表信息
mkdir -p /root/myredis           #创建myredis目录

复制/opt/redis-6.2.1/redis.conf文件到/root/myredis目录

cp /opt/redis-6.2.1/redis.conf /root/myredis/

编辑并且配置redis.conf文件

vim /root/myredis/redis.conf

设置行号(便于修改文件 精准导航)

#按Esc 进入末行模式  第一行是 1G 以此类推 最后一行为G  启动编辑按:i
:set nu

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

然后保存并且退出

:wq

创建redis638.conf并且编辑内容 然后保存并且退出

# vim 编辑内容时 若文件不存在则创建
vim /root/myredis/redis6379.conf

在这里插入图片描述

到了这里 就算是已经配置好了一个最基础的配置了 可以开启一个简单的redis服务了

​ 使用以下命令可以启动 Redis 服务

redis-server /root/myredis/redis6379.conf

二,创建多个reids实例 (复制并定制化 Redis 配置文件)

我这里就额外创建两个作为展示

​ 复制拷贝编辑好的/root/myredis/redis6379.conf

cp redis6379.conf redis6380.conf
cp redis6379.conf redis6381.conf

分别修改redis6380 redis6381里面的配置文件:

使用命令开启这两个redis实例

redis-server /root/myredis/redis6380.conf
redis-server /root/myredis/redis6381.conf

查看redis进程和redis服务器端口号

 ps -ef | grep redis

在这里插入图片描述

这时候就可以启动3个客户端并链接3个不同端口的redis服务器了

redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381

这个时候就算是实现了创建多个reids实例 功能 但是这个时候还是存在问题的

# redis的客户端输入 一下命令  三个客户端都会显示是master(主节点)
INFO replication

三,配置客户端的主从关系

在6380客户端和6381客户端中配置主从(注意:只在从里面配置)

​ 分别在两个客户端 输入以下代码

#slaveof 虚拟机ip地址 主节点端口号
SLAVEOF 192.168.159.131 6379 

​ 然后 就会只有一个‘master‘(主节点) 两个 slave(从节点)了

这个时候 再在从节点客户端输入 info replication 命令时 就会如下显示

在这里插入图片描述

​ 现在基本的一主二从 已经配置完成了

​ 但是现在依然存在问题 当主节点宕机时 会使服务器及数据损坏 这个时候就需要配置’哨兵‘ 来确保 Redis 系统的高可用性


四,配置哨兵

配置哨兵的作用是确保 Redis 系统的高可用性。Redis Sentinel(哨兵)是一个用于监控和管理 Redis 集群的自动化系统,它可以检测 Redis 主节点和从节点的故障,并在需要时进行自动故障转移和节点恢复。主要作用包括:

  1. 监控 Redis 实例:哨兵定期检查 Redis 主节点和从节点的健康状态,包括网络连接、响应时间等,以确保集群的稳定运行。
  2. 自动故障转移:如果主节点宕机或不可用,哨兵会自动将一个从节点升级为新的主节点,以保证系统的可用性。它还会更新其他从节点的配置,使它们连接到新的主节点。
  3. 配置管理:哨兵负责管理 Redis 集群的配置信息,包括主从节点的配置、故障转移策略等。
  4. 提供故障通知:哨兵可以向管理员发送警报通知,当出现节点故障或其他异常情况时,管理员可以及时采取措施来处理问题。
  5. 服务发现:客户端可以通过连接到哨兵来发现 Redis 集群的主节点和从节点,并获取集群的连接信息,从而实现对 Redis 集群的动态发现和连接。

创建哨兵的方式 :

​ 创建并编辑/root/myredis/sentinel26379.conf文件设置哨兵

vim /root/myredis/sentinel26379.conf

在这里插入图片描述

保存退出了 已经出现一个哨兵的配置 然后以此来再拷贝创建两个哨兵

cp /root/myredis/sentinel26379.conf /root/myredis/sentinel26380.conf 
cp /root/myredis/sentinel26379.conf /root/myredis/sentinel26381.conf 

依次修改sentinel26380.conf,sentinel26381.conf两个文件

​ 只需要修改文件中的 port 改为自己对应的端口号 :26380 26381 就可以了

启动三个哨兵

redis-sentinel sentinel26379.conf 
redis-sentinel sentinel26380.conf 
redis-sentinel sentinel26381.conf 

创建三个哨兵是为了确保高可用性和容错性。

  1. 容错性:通过多个哨兵节点,即使一个哨兵节点发生故障,其他哨兵节点仍然可以继续监视和管理 Redis 集群。如果只有一个哨兵节点,当这个哨兵节点发生故障时,将导致整个 Redis 集群失去监控和管理,从而增加了集群的风险。
  2. 选举:在进行主节点故障转移时,需要进行投票和选举过程。如果只有两个哨兵节点,当两个节点之间发生分裂(网络分区)时,可能会导致投票无法达成一致,从而无法进行故障转移。而有三个或更多的哨兵节点可以确保在大多数节点达成一致的情况下进行投票,增加了投票的可靠性。
  3. 监控:多个哨兵节点可以分布在不同的服务器上,从而可以更好地监控 Redis 集群的各个节点。这样可以增加监控的覆盖范围,减少单点故障的影响。

过程。如果只有两个哨兵节点,当两个节点之间发生分裂(网络分区)时,可能会导致投票无法达成一致,从而无法进行故障转移。而有三个或更多的哨兵节点可以确保在大多数节点达成一致的情况下进行投票,增加了投票的可靠性。
3. 监控:多个哨兵节点可以分布在不同的服务器上,从而可以更好地监控 Redis 集群的各个节点。这样可以增加监控的覆盖范围,减少单点故障的影响。

这个时候就可以实现 当主节点宕机时 哨兵检测到之后 选择出一个从节点为主节点

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

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

相关文章

PP周转箱内隔板焊接与选材

1. 目前有个项目用PP 周转箱作为水箱使用,内部需要焊接隔板安装滤网,大致样式类似如下图: 1位置的隔板需要用PP板,以保持和周转箱一样的材料,便于焊接, 2处位置的焊缝是用类似淘宝上面的这种PP焊条和塑料焊…

iOS(Object C) 希尔排序

希尔排序就是升级版本的 插入排序, 插入排序的文章请看我另一篇:iOS(Object C) 插入排序-CSDN博客 希尔排序的思想: 1.取一个整数d1 N/2 (N为数组长度),将数组里的元素分成d1 个组,每组相邻元素之间的距离为d1,在各组内进行插入排序 2.取第二个整数d2d1/2,重复步骤1的分组…

Linux内核驱动开发-字符设备驱动框架

1前置条件 &#xff08;1&#xff09;【linux】内核编译结束 &#xff08;2&#xff09;【linux】目录配置跳转文件&#xff1a;补充&#xff1a;配置的跳转文件只能在【linux】目录下使用&#xff0c;子目录无法使用2驱动框架 2.1编写驱动程序 #include <linux/init.h&g…

手撕sql面试题:计算出在校人数,字段中含有学生的学制

今天分享一道面试题!如下&#xff1a; 有一个录取学生人数表&#xff0c;记录的是每年录取学生人数和入学学生的学制 以下是表结构&#xff1a; CREATE TABLE admit ( id int(11) NOT NULL AUTO_INCREMENT, year int(255) DEFAULT NULL COMMENT 入学年度, num int(255) …

工业相机和镜头参数和选型

工业相机和镜头参数和选型 文章目录 工业相机和镜头参数和选型前言一、相机参数解释和选型1.相机参数1.1快门-shutter1.2曝光-exposure1.3增益-gain1.4 感光芯片类型&#xff08;CCD/CMOS&#xff09;1.5 感光芯片&#xff08;靶面&#xff09;尺寸1.6 分辨率1.7 像元尺寸1.8 帧…

前端补充17(JS)

一、JS组成成分 JS的组成成分&#xff0c;由三部分组成 第一、ECMAScript&#xff1a;语法规则&#xff0c;如何定义变量&#xff0c;数据类型有哪些&#xff0c;如何转换数据类型&#xff0c;if判断 if-else while for for-in forEach do-while switch 数组 函数 对…

SpringSecurity授权流程(自己做笔记用的)

目录 一、RABC表的设计 二、查询权限并添加Security中 三、通过注解进行授权 四、授权进行前端访问 一、RABC表的设计 基本概念就是五个表&#xff1a; 用户表&#xff1a;users 角色表&#xff1a;role 权限表&#xff1a;permission 还需要两种关系表&#xff0c;才能通过…

LDA主题模型

在文本挖掘领域&#xff0c;大量的数据都是非结构化的&#xff0c;很难从信息中直接获取相关和期望的信息&#xff0c;一种文本挖掘的方法&#xff1a;主题模型&#xff08;Topic Model&#xff09;能够识别在文档里的主题&#xff0c;并且挖掘语料里隐藏信息&#xff0c;并且在…

Hbase学习笔记

Hbase是什么 HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,并提供实时的读写的数据库系统。HBase的设计思想来源于Google的BigTable论文,是Apache的Hadoop项目的子项目。它适合于存储大表数据,并可以达到实时级别。HB…

Java基础知识(一)

1. Java语言跨平台原理 1.1 Java语言的特点 完全面向对象&#xff1a; Java语言支持封装、继承、多态&#xff0c;面向对象编程&#xff0c;让程序更好达到高内聚&#xff0c;低耦合的标准。支持分布式&#xff1a; Java语言支持Internet应用的开发&#xff0c;在基本的Java应…

实现ALV页眉页脚

1、文档介绍 在ALV中&#xff0c;可以通过增加页眉和页脚&#xff0c;丰富ALV的展示。除了基本的页眉和页脚&#xff0c;还可以通过插入HTML代码的方式展示更加丰富的页眉和页脚&#xff0c;本篇文章将介绍ALV和OOALV中页眉页脚的使用。 2、ALV页眉页脚 效果如下 2.1、显示内…

贝叶斯网络(概念、应用、实例)

目录 一、贝叶斯网络基本概念 1.1主要组成 1.2概率模型 1.3应用场景 1.4推理方法 1.5学习 二、贝叶斯网络在机器学习中的应用 三、应用实例 3.1分类 3.2推荐系统 3.3自然语言处理 一、贝叶斯网络基本概念 贝叶斯网络&#xff0c;也称为信念网络或有向无环图模型&am…