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

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

文章目录

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

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

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

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

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

shell 复制代码
cp /opt/redis-6.2.1/redis.conf /root/myredis/

编辑并且配置redis.conf文件

shell 复制代码
vim /root/myredis/redis.conf

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

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


然后保存并且退出

sheef 复制代码
:wq

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

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

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

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

shell 复制代码
redis-server /root/myredis/redis6379.conf

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

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

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

shell 复制代码
cp redis6379.conf redis6380.conf
cp redis6379.conf redis6381.conf

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

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

shell 复制代码
redis-server /root/myredis/redis6380.conf
redis-server /root/myredis/redis6381.conf

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

shell 复制代码
 ps -ef | grep redis

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

shell 复制代码
redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381

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

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

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

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

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

shell 复制代码
#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文件设置哨兵

shell 复制代码
vim /root/myredis/sentinel26379.conf

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

shell 复制代码
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 就可以了

启动三个哨兵

shell 复制代码
redis-sentinel sentinel26379.conf 
redis-sentinel sentinel26380.conf 
redis-sentinel sentinel26381.conf 

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

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

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

相关推荐
IChen.1 小时前
解决centos 删除文件后但空间没有释放
linux·运维·centos
多恩Stone2 小时前
【vs code(cursor) ssh连不上服务器】但是 Terminal 可以连上,问题解决 ✅
运维·服务器·ssh
何陈陈2 小时前
【Linux】线程池
linux·服务器·开发语言·c++
S hh2 小时前
【Linux 】文件描述符fd、重定向、缓冲区(超详解)
linux·运维·服务器
DuoRuaiMiFa2 小时前
Linux系统性能调优实战指南
linux
憧憬一下2 小时前
线程池的实现和讲解:解决多线程并发服务器创建销毁线程消耗过大的问题
linux·线程池·c/c++·嵌入式linux
碳治郎AI2 小时前
Bolt.new:终极自动化编程工具
运维·自动化
朝九晚五ฺ3 小时前
【Linux探索学习】第三弹——Linux的基础指令(下)——开启新篇章的大门
linux·运维·学习
肥or胖3 小时前
【MySQL】索引
linux·数据库·mysql