返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >redis搭建哨兵集群的实现步骤
  • 255
分享到

redis搭建哨兵集群的实现步骤

2024-04-02 19:04:59 255人浏览 泡泡鱼
摘要

目录Redis安装部署redis集群架构配置redis主从测试主从搭建redis哨兵集群哨兵集群详解:哨兵集群原理哨兵集群redis安装部署 环境说明: redis使用的是6.2.6

redis安装部署

环境说明:

redis使用的是6.2.6版本

主机IP系统
master192.168.129.136redhat8
slave192.168.182.135redhat8
slave2192.168.182.134redhat8

准备工作

// 三台主机都要做
[root@master opt] wget https://download.redis.io/releases/redis-6.2.6.tar.gz

//三台主机都做
[root@master opt]# tar -zxf redis-6.2.6.tar.gz 

//编译安装
[root@master redis-6.2.6]# pwd  //进入redis目录
/opt/redis-6.2.6

[root@master redis-6.2.6]# yum -y install GCc gcc-c++  //安装C语言编译器
[root@master redis-6.2.6]# yum -y install make  //安装make编译器

[root@master redis-6.2.6]# make MALLOC=libc  

配置环境变量

// redis的二进制文件放在src目录下
[root@master redis-6.2.6]# cat /etc/profile.d/redis.sh   //为了能直接使用redis命令
export PATH=/opt/redis-6.2.6/src:$PATH

[root@master redis-6.2.6]# source /etc/profile.d/redis.sh  //使其生效

//启动redis
启动方式有以下两种:
[root@master redis-6.2.6]# vim redis.conf
257 daemonize yes //把no改为yes

启动一:
[root@master src]# ./redis-server  //不建议用这种方式启动
[root@master redis-6.2.6]# redis-server /opt/redis-6.2.6/redis.conf  //推荐使用这种方式

启动二:
[root@master opt]# cat /usr/lib/systemd/system/redis.service 
[Unit]
Description=redis server daemon
After=network.target

[Service]
Type=forking
ExecStart=/opt/redis-6.2.6/src/redis-server /opt/redis-6.2.6/redis.conf
ExecStop=/bin/kill -s QUIT $MaiNPID
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

[root@master opt]# systemctl daemon-reload
[root@master opt]# systemctl enable --now redis.service

[root@master opt]# ss -anlt | awk -F "  *|:" 'NR==2{print $5}'   //看到6379端口号说明成功
6379

进入客户端的命令
redis-cli -p 6379 
127.0.0.1:6379>

[root@master redis-6.2.6]# redis-cli -p 6379 shutdown  //关闭redis服务

以上操作三台主机都需要做

redis集群架构

现在所部署的哨兵集群是基于redis主从的基础上的,整体架构如下:
一个主节点(master)可拥有多个从节点(slave),从节点实现对主节点的复制,保证数据同步。而哨兵(sentinel)则对各节点进行监控,主要包括主节点存活检测、主从运行情况检测等,一旦主节点宕机,哨兵可自动进行故障转移 (failover)、主从切换。

配置redis主从

修改redis配置文件
建议在修改配置文件之前写备份

//在master要做的事
[root@master redis-6.2.6]# mkdir logs
75 bind 192.168.129.136  //本机IP地址
94 protected-mode no  
302 logfile "/opt/redis-6.2.6/logs/redis.log"

注意replicaof指定master的IP地址和端口号,在老版本上要做的事 slaveof

//在slave2上要做的事
[root@slave2 redis-6.2.6]# vim redis.conf
75 bind 192.168.129.135  //本机IP
477   replicaof 192.168.129.136 6379  master的IP和端口号

//在slave2上要做的事
[root@slave2 redis-6.2.6]# vim redis.conf
75 bind 192.168.129.135  //本机IP
477   replicaof 192.168.129.136 6379  master的IP和端口号

注意修改完配置文件之后需要重启redis服务才能生效

测试主从

[root@master redis-6.2.6]# redis-cli -h 192.168.129.136 -p 6379
192.168.129.136:6379> set name tom  // 设置一个value值
OK

[root@slave ~]# redis-cli -h 192.168.129.135  //这里也可以不指定端口号,因为redis默认使用的事6379端口号
192.168.129.135:6379> get name
"tom"

[root@slave2 redis-6.2.6]# redis-cli -h 192.168.129.134
192.168.129.134:6379> get name
"tom"

###主从同步成功

搭建redis哨兵集群

哨兵集群详解:

Redis Sentinel是Redis 的高可用性解决方案由一个或多个Sentinel(哨兵)实例组成。它可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,它的主要功能如下:

  • 监控: Sentinel会不断地检查你的主服务器和从服务器是否运作正常。
  • 通知:当被监控的某个 Redis 服务器出现问题时, Sentinel可以通过api向管理员或者其他应用程序发送通知。
  • 故障迁移:当主服务器不能正常工作时,Sentinel会自动进行故障迁移,也就是主从切换。
  • 统一的配置管理:连接者询问sentinel取得主从的地址。

哨兵集群原理

Sentinel 使用的算法核心是 Raft 算法,主要用途就是用于分布式系统,系统容错,以及Leader选举,每个Sentinel都需要定期的执行以下任务:

  • 每个 Sentinel 会自动发现其他 Sentinel 和从服务器,它以每秒钟一次的频率向它所知的主服务器、从服务器以及其他 Sentinel 实例发送一个 PING 命令。
  • 如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 那么这个实例会被 Sentinel 标记为主观下线。 有效回复可以是: +PONG 、 -LOADING 或者 -MASTERDOWN 。
  • 如果一个主服务器被标记为主观下线, 那么正在监视这个主服务器的所有Sentinel要以每秒一次的频率确认主服务器的确进入了主观下线状态。
  • 如果一个主服务器被标记为主观下线, 并且有足够数量的Sentinel(至少要达到配置文件指定的数量)在指定的时间范围内同意这一判断, 那么这个主服务器被标记为客观下线。
  • 在一般情况下, 每个Sentinel会以每 10 秒一次的频率向它已知的所有主服务器和从服务器发送 INFO 命令。 当一个主服务器被Sentinel标记为客观下线时,Sentinel向下线主服务器的所有从服务器发送 INFO 命令的频率会从 10 秒一次改为每秒一次。
  • 当没有足够数量的Sentinel同意主服务器已经下线, 主服务器的客观下线状态就会被移除。 当主服务器重新向Sentinel的 PING 命令返回有效回复时, 主服务器的主管下线状态就会被移除。

哨兵集群

// 三台主机做同样的操作
[root@master redis-6.2.6]# vim sentinel.conf
26 daemonize yes
36 logfile "/opt/redis-6.2.6/logs/sentinel.conf"
84 sentinel monitor mymaster 192.168.129.136 6379 2

[root@master ~]# redis-sentinel /opt/redis-6.2.6/sentinel.conf //启动哨兵

// 查看哨兵信息
[root@master ~]# redis-cli -h 192.168.129.136 -p 26379
192.168.129.136:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.129.136:6379,slaves=2,sentinels=3

[root@slave ~]# redis-cli -h 192.168.129.135 -p 26379
192.168.129.135:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.129.136:6379,slaves=2,sentinels=3


[root@slave2 ~]# redis-cli -h 192.168.129.134 -p 26379
192.168.129.134:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.129.136:6379,slaves=2,sentinels=3

模拟主机故障,进行容灾切换

[root@master ~]# systemctl stop redis.service  //关闭redis服务
[root@master redis-6.2.6]# ps -ef | grep redis  //使用此命令找到sentinel进程,然后再kill掉sentinel的进程

//因为主机切换到了144主机,因此原来主机的配置文件也会随之更改,所以在137启动前需要更改配置文件,将其配置成144的从机:
[root@master redis-6.2.6]# vim redis.conf
477   replicaof 192.168.129.134 6379

[root@master redis-6.2.6]# redis-server /opt/redis-6.2.6/redis.conf //启动redis服务
[root@master redis-6.2.6]# systemctl restart redis.service  //也可以使用此命令启动redis服务

[root@master redis-6.2.6]# redis-sentinel /opt/redis-6.2.6/sentinel.conf  //启动sentinel服务

##至此哨兵集群搭建完毕

到此这篇关于redis搭建哨兵集群的实现步骤的文章就介绍到这了,更多相关redis 哨兵集群内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: redis搭建哨兵集群的实现步骤

本文链接: https://lsjlt.com/news/149009.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redis搭建哨兵集群的实现步骤
    目录redis安装部署redis集群架构配置redis主从测试主从搭建redis哨兵集群哨兵集群详解:哨兵集群原理哨兵集群redis安装部署 环境说明: redis使用的是6.2.6...
    99+
    2024-04-02
  • docker搭建redis主从哨兵集群的实现步骤
    目录1:获取Redis镜像2:创建redis主从+哨兵docker-compose文件3:redis配置和哨兵配置说明4:启动docker-compose5:查看启动情况6:进入主节点查看集群情况本文以docker-co...
    99+
    2022-07-10
    dockerredis主从哨兵集群 redis主从哨兵集群
  • redis 哨兵集群搭建的实现
    目录前言为什么需要哨兵集群搭建前准备搭建步骤集群测试前言 在上一篇,我们了解了Redis 复制集群的完整的搭建流程,本篇来分享一下如何搭建 redis 哨兵集群。 为什么需要哨兵集群 redis哨兵集群要解决的问题是什么...
    99+
    2022-08-10
    redis 哨兵集群搭建 redis 哨兵集群
  • redis 哨兵集群搭建的实现
    目录前言为什么需要哨兵集群搭建前准备搭建步骤集群测试前言 在上一篇,我们了解了redis 复制集群的完整的搭建流程,本篇来分享一下如何搭建 redis 哨兵集群。 为什么需要哨兵集群...
    99+
    2022-11-13
    redis 哨兵集群搭建 redis 哨兵集群
  • Redis sentinel哨兵集群的实现步骤
    目录一、Redis sentinel哨兵集群概述(1)Redis哨兵概述(2)Redis哨兵的工作机制(3)哨兵的三个定时监控任务二、部署Redis哨兵系统(1)实验环境(2)实验步骤 -在每台服务器上都安装Redis一...
    99+
    2022-07-14
    Redis sentinel哨兵集群 Redis sentinel哨兵
  • Redis sentinel哨兵集群的实现步骤
    目录一、Redis sentinel哨兵集群概述(1)Redis哨兵概述(2)Redis哨兵的工作机制(3)哨兵的三个定时监控任务二、部署Redis哨兵系统(1)实验环境(2)实验步...
    99+
    2024-04-02
  • redis怎么搭建哨兵集群
    本篇内容主要讲解“redis怎么搭建哨兵集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis怎么搭建哨兵集群”吧!redis安装部署环境说明:redis使用的是6.2.6版本主机IP系统...
    99+
    2023-06-30
  • Redis 哨兵集群的实现
    目录1、Sentinel 哨兵2、Redis 主从分离一、配置Master二、配置Slave  1、在配置文件中配置从服务  2、在服务启动后设置  3、总结3、Sentinel 哨...
    99+
    2024-04-02
  • docker搭建redis哨兵集群并且整合springboot的实现
    目录1、创建两个文件夹Redis和sentinel文件夹用于存放docker-compose.yml文件2、redis下的docker-compose.yml3、sentinel下的docker-compose.yml文...
    99+
    2022-07-11
    docker搭建redis哨兵集群 springbootredis哨兵
  • Redis主从以及哨兵集群搭建(二)
    Redis主从以及哨兵集群搭建一、前言  Redis主从同步原理同MySQL的主从原理十分相似,而解决Redis单点故障的哨兵机制(sentinel)又同解决MySQL单点故障的MHA十分相似。因...
    99+
    2024-04-02
  • docker如何搭建redis主从哨兵集群
    这篇文章主要讲解了“docker如何搭建redis主从哨兵集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker如何搭建redis主从哨兵集群”吧!1:获取redis镜像docker...
    99+
    2023-07-02
  • Docker下Redis集群(主从+哨兵)安装配置的实现步骤
    目录一、所有机器拉去镜像二、主从集群搭建2.1、redis.cong 文件2.2、创建本地映射文件夹,并将 Redis.conf 放到 /usr/local/redis/conf 文件夹内2.3、启动redis2.4、校...
    99+
    2022-07-11
    Docker Redis集群配置 Docker Redis 主从 哨兵
  • Redis的Cluster集群搭建的实现步骤
    目录一、引言二、Redis的Cluster模式介绍1、Redis群集101 2、Redis群集TCP端口 3、Redis集群和Docker 4、Redis集群数据分片 5、Redis...
    99+
    2024-04-02
  • 如何进行Redis 6.X Sentinel哨兵集群搭建
    如何进行Redis 6.X Sentinel哨兵集群搭建,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。码哥带大家完成在 CentOS 7 中安装 Redis 6...
    99+
    2023-06-15
  • docker实现redis集群搭建的方法步骤
    目录一、创建redis docker基础镜像 二、制作redis节点镜像 三、运行redis集群  引用:摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都...
    99+
    2024-04-02
  • 搭建配置redis集群的步骤
    这期内容当中的小编将会给大家带来有关搭建配置redis集群的步骤,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节...
    99+
    2024-04-02
  • 5分钟教你实现用docker搭建Redis集群模式和哨兵模式
    目录一.准备工作拉取redis镜像二.部署redis哨兵主从模式1、什么是docker compose?2、编写reids主从docker-compose.yml3、启动主从redi...
    99+
    2024-04-02
  • docker搭建redis三主三从集群的实现步骤
    目录一 准备Redis镜像、容器1.1 下载redis6.0.81.2 准备6台服务器配置文件1.3 创建6台redis容器二 创建主从集群关系2.1 进入任意一台redis容器2.3 查看集群状态三 主从容错切换迁移案...
    99+
    2022-08-17
    dockerredis三主三从集群 dockerredis三主三从
  • Redis Sentinel实现哨兵模式搭建小结
    Redis哨兵模式,用现在流行的话可以说就是一个“哨兵机器人”,给“哨兵机器人”进行相应的配置之后,这个"机器人"可以7*24小时工作,它能能够自动帮助你做一些事情,如监控,提醒,自动处理故障等。 Redi...
    99+
    2024-04-02
  • redis中的哨兵模式和集群模式
    这期内容当中的小编将会给大家带来有关redis中的哨兵模式和集群模式,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。哨兵模式它是一种高可用的解决方案,sentinel本身是一个独立运行的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作