redis 哨兵集群搭建的实现

目录
  • 前言
  • 为什么需要哨兵集群
  • 搭建前准备
  • 搭建步骤
  • 集群测试

前言

在上一篇,我们了解了redis 复制集群的完整的搭建流程,本篇来分享一下如何搭建 redis 哨兵集群。

为什么需要哨兵集群

redis哨兵集群要解决的问题是什么呢?搞清楚这个问题之后,就知道为什么需要哨兵集群了。我们知道,redis复制集群解决的是,高并发情况下,单节点的读性能瓶颈以及单节点问题;

但是复制集群的很明显的问题就是,当主节点挂掉后,集群将无法提供写业务,如果要恢复集群,则需要人工介入,这个必定会丢失数据不说,而且需要一定的时间;

而在哨兵模式下,集群的状态通过哨兵可以得到实时监控,一旦主节点宕机,哨兵会立即感知,然后选举出新的主节点,继续对外提供服务;

搭建前准备

1、基于centos7 的虚拟机(或云服务器);

2、redis 安装包(本篇基于6.X版本);

搭建步骤

本篇的集群将在同一台机器上搭建演示,通过不同的端口进行区分

1、准备(规划)三个sentinel实例

节点 IP PORT
s1 10.34.33.80 27001
s2 10.34.33.80 27002
s3 10.34.33.80 27003

2、创建3个文件目录

要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。我们创建三个文件夹,名字分别叫s1、s2、s3;

mkdir s1 s2 s3

3、在s1目录下创建一个sentinel.conf文件

添加下面的内容:

port 27001
sentinel announce-ip IP
sentinel monitor mymaster IP 7001 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
dir "/tmp/s1"

配置文件解读:

  • port 27001:是当前sentinel实例的端口;
  • sentinel monitor mymaster 192.168.150.101 7001 2:指定主节点信息

mymaster:主节点名称,自定义,任意写;

IP 7001:主节点的ip和端口;

2:选举master时的quorum值

4、将s1/sentinel.conf文件拷贝到s2、s3两个目录中

在/tmp目录执行下列命令

cp s1/sentinel.conf s2
cp s1/sentinel.conf s3

5、修改s2,s3目录下的配置文件端口分别为27002、27003

在tmp目录下执行下面的命令

sed -i -e 's/27001/27002/g' -e 's/s1/s2/g' s2/sentinel.conf
sed -i -e 's/27001/27003/g' -e 's/s1/s3/g' s3/sentinel.conf

随机打开一个s2或s3目录下的文件,可以发现,配置文件已调整;

6、启动3个sentinel实例

在启动sentinel集群之前,先把上一篇的redis集群启动起来

进入到tmp目录,分别执行下面的命令进行启动

# 第1个
redis-sentinel s1/sentinel.conf
# 第2个
redis-sentinel s2/sentinel.conf
# 第3个
redis-sentinel s3/sentinel.conf

启动过程

通过输出日志,也可以看到,三个sentinel实例已经正常启动,并探测到 7001,7002,7003这三个redis实例,以及这三个redis实例的主从关系,即redis集群已经成功被sentinel集群监控起来;

到这里为止,整改哨兵集群大搭建过程就完成了,接下来,做一下集群的异常测试

集群测试

将redis 7001这个服务实例强制下线

在下线的时候,注意分别观察sentinel的3个实例控制台的输出日志变化

从sentinel实例控制台的输出日志来看,主要经历了3个阶段:

  • 认为7001这个redis实例主观下线;
  • 当sentinel集群超过半数以上的实例认为7001这个节点下线时,变成客观下线;
  • 发起投票,在剩下的2个redis实例中进行新的redis master的选举;

再次启动7001这个实例

通过sentinel控制台输出日志,可以看到,7001服务实例信息再次被sentinel集群探测到,即监控起来

需要注意的是,再次启动7001服务之后,7001这个redis实例不一定会再次成为master

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

(0)

相关推荐

  • Redis sentinel哨兵集群的实现步骤

    目录 一.Redis sentinel哨兵集群概述 (1)Redis哨兵概述 (2)Redis哨兵的工作机制 (3)哨兵的三个定时监控任务 二.部署Redis哨兵系统 (1)实验环境 (2)实验步骤 -在每台服务器上都安装Redis 一.Redis sentinel哨兵集群概述 (1)Redis哨兵概述 *Sentinel 哨兵:这是一个分布式系统,该进程是用于监控Redis集群中Master主服务器的工作状态,在Master主服务器发生故障时,可以实现Master和Slave服务器的秒级切换,

  • Linux学习教程之redis哨兵集群详解

    前言 Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中,下面话不多说了,来一起看看详细的介绍吧 1.Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器. 例如: 在Server1 掉线后

  • Redis 哨兵集群的实现

    目录 1.Sentinel 哨兵 2.Redis 主从分离 一.配置Master 二.配置Slave 1.在配置文件中配置从服务 2.在服务启动后设置 3.总结 3.Sentinel 哨兵 1.配置端口 2.配置主服务器的ip 和端口 3.启动Sentinel 4.关闭Master 5.重连Master 4.Sentinel 总结 一.Sentinel的作用: 二.Sentinel的工作方式: 1.Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Se

  • 5分钟教你实现用docker搭建Redis集群模式和哨兵模式

    如果让你为开发.测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短. 是的,你已经猜到了,用docker部署,真的只需要十几分钟. 一.准备工作 拉取redis镜像 运行如下命令: docker pull redis 该命令拉取的镜像是官方镜像,当然你可以搜索其他的镜像,这里不做深入 查看镜像情况: 二.部署redis哨兵主从模式 什么是哨兵模式?--请自行百度 1.什么是docker compose? Docker Compose 可以理解为将

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

    目录 redis安装部署 redis集群架构 配置redis主从 测试主从 搭建redis哨兵集群 哨兵集群详解: 哨兵集群原理 哨兵集群 redis安装部署 环境说明: redis使用的是6.2.6版本 主机 IP 系统 master 192.168.129.136 redhat8 slave 192.168.182.135 redhat8 slave2 192.168.182.134 redhat8 准备工作 // 三台主机都要做 [root@master opt] wget https:/

  • Docker下Redis集群(主从+哨兵)安装配置的实现步骤

    目录 一.所有机器拉去镜像 二.主从集群搭建 2.1.redis.cong 文件 2.2.创建本地映射文件夹,并将 redis.conf 放到 /usr/local/redis/conf 文件夹内 2.3.启动redis 2.4.校验redis主从集群安装是否成功 三.开启哨兵模式 3.1.sentinel.conf 配置文件 3.2.创建本地映射文件夹,并将 sentinel.conf 放到 /usr/local/redis-sentinel/conf 文件夹内 3.3.启动 redis-se

  • Redis 单机安装和哨兵模式集群安装的实现

    目录 前言: 1.Redis单机版安装 1.1:下载安装包 1.2:解压安装包 1.3:执行make命令,编译redis代码 1.4:安装并指定安装目录 1.5:配置环境变量 1.6:让redis作为服务进行后台启动 1.7:redis关闭服务 2.Redis 集群版安装 2.1:基本的集群拓扑图如下 2.2:修改redis-sentinel的配置文件 sentinel.conf 2.4:分别启动 redis-1,redis-2,redis-3 服务 2.5:分别启动 sentinel-1, s

  • redis 哨兵集群搭建的实现

    目录 前言 为什么需要哨兵集群 搭建前准备 搭建步骤 集群测试 前言 在上一篇,我们了解了redis 复制集群的完整的搭建流程,本篇来分享一下如何搭建 redis 哨兵集群. 为什么需要哨兵集群 redis哨兵集群要解决的问题是什么呢?搞清楚这个问题之后,就知道为什么需要哨兵集群了.我们知道,redis复制集群解决的是,高并发情况下,单节点的读性能瓶颈以及单节点问题: 但是复制集群的很明显的问题就是,当主节点挂掉后,集群将无法提供写业务,如果要恢复集群,则需要人工介入,这个必定会丢失数据不说,而

  • docker搭建redis哨兵集群并且整合springboot的实现

    目录 1.创建两个文件夹redis和sentinel文件夹用于存放docker-compose.yml文件 2.redis下的docker-compose.yml 3.sentinel下的docker-compose.yml文件以及sentinel.conf配置文件 4.spring boot整合redis哨兵 5.哨兵工作方式 6.Redis-Cluster集群 7.redis常见问题 1.创建两个文件夹redis和sentinel文件夹用于存放docker-compose.yml文件 2.r

  • 分布式Redis Cluster集群搭建与Redis基本用法

    目录 Redis集群搭建 Redis是啥 集群(Cluster) RedisCluster说明 RedisCluster节点 RedisCluster集群模式 不能保证一致性 创建和使用Redis集群 部署三个主节点 非docker docker安装 创建集群 Redis入门 Redis中的数据类型 字符串(string) 哈希(Hash) 列表(Lists) 集合(Set) 有序集合(sortedset) Redis 集群搭建 Redis 是啥 Redis(全称 REmote DIctiona

  • Redis Cluster 集群搭建你会吗

    三台机器 201.202.203,每台机器装两个 redis 实例,构建 redis cluster 集群. 1. 安装 添加 redis-cluster 目录,将 redis 压缩包拷贝到该目录下,解压压缩包. 解压完后,将文件夹 redis-5.0.3 重命名为 redis1. [root@test201 redis-cluster]# mv redis-5.0.3 redis1 需要在 redis1 目录下使用 make 命令进行编译. [root@test201 redis-cluste

  • redis 分片集群搭建与使用教程

    目录 前言 搭建集群架构图 前置准备 搭建步骤 创建集群 Redis散列插槽说明 集群伸缩(添加节点) 故障转移 使用redistemplate访问分片集群 前言 redis可以说在实际项目开发中使用的非常频繁,在redis常用集群中,我们聊到了redis常用的几种集群方案,不同的集群对应着不同的场景,并且详细说明了各种集群的优劣,本篇将以redis 分片集群为切入点,从redis 分片集群的搭建开始,详细说说redis 分片集群相关的技术点: 单点故障: 单机写(高并发写)瓶颈: 单机存储数据

  • redis复制集群搭建的实现

    目录 前言 环境准备 搭建过程 问题总结 前言 redis 复制集群是开发中一种比较常用的集群模式,本篇演示如何在centos7上快速搭建一个redis复制集群: 环境准备 1.基于centos7系统的服务器(或者云服务器): 2.redis 安装包: 搭建过程 由于资源限制,本篇将在一台服务器上搭建,通过不同的端口号进行区分: 1.上传redis安装包到指定目录下(并解压) 2.在当前目录下,创建三个目录 在当前目录,分别创建 7001,7002,7003 三个文件目录 3.将redis解压包

  • Redis的Cluster集群搭建的实现步骤

    目录 一.引言 二.Redis的Cluster模式介绍 1.Redis群集101 2.Redis群集TCP端口 3.Redis集群和Docker 4.Redis集群数据分片 5.Redis集群之主从模型 6.Redis集群一致性保证 7.Redis群集配置参数 三.创建和使用Redis群集 四.使用创建群集脚本创建Redis群集 五.测试故障转移 六.手动故障转移 七.总结 一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的所涉及到的概念做深入的探讨.本文只是针

随机推荐