搭建哨兵模式reids、redis从节点脱离哨兵集群

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 搭建哨兵模式reids、redis从节点脱离哨兵集群

安装单机reids详细教程:https://blog.csdn.net/CharmaineXia/article/details/125297843?spm=1001.2014.3001.5502

搭建主从模式集群redis:https://blog.csdn.net/CharmaineXia/article/details/125298465


0.哨兵模式简介

为了防止主从模式中reids主节点宕机以后,整个集群都无法使用,哨兵监视着redis主节点,如果主节点宕机,哨兵会在redis从节点中选出一个当做主节点。

一台哨兵也有自己宕机的风险,所以一般会开启多个哨兵,哨兵之间相互通信,主节点宕机后,哨兵们会通过“投票机制”在从节点中选出redis主节点。

哨兵模式在包含主从模式优点的基础上,还增加了稳定性。

哨兵模式建立在主从模式之上,搭建哨兵前先建好主从模式。

哨兵也要搭建集群,一主二从共有3个reids进程、3个哨兵进程。

三台服务器都配置哨兵文件,并启动哨兵,先配置好一台服务器的哨兵配置文件,然后把配置文件复制到其他服务器即可。


1.设置配置文件路径(非必做)

①创建新目录,原生的sentinel.conf做备份,启动只用以下路径的配置文件。

mkdir /home/admin/redis/redis-5.0.7/redisSentinel

②把配置文件复制过去

cp -r mkdir /home/admin/redis/redis-5.0.7/sentinel.conf /home/admin/redis/redis-5.0.7/redisSentinel


2.修改哨兵配置文件

①修改配置文件

vi /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf

## 修改1:让sentinel服务后台运行

daemonize yes

## 修改2:增加日志文件路径

logfile “/home/admin/redis/redis-5.0.7/sentinel.log”

## 修改3:增加redis主节点信息和需要进行选举的法定个数(2代表只有2个哨兵节点同时认为master节点时效时,才算真正的失效)

把sentinel monitor mymaster 127.0.0.1 6379 2改成

sentinel monitor mymaster 192.168.60.83 6379 2


②如果配置文件是复制过来的,还需要注释哨兵的myid,启动哨兵后生成新的myid。

不然哨兵的myid相同,哨兵间无法通信。

③查看修改后的配置文件

cat sentinel.conf |grep -v “#”|grep -v “^$”


3.运行哨兵

①启动三台redis服务(先启主机,后启从机)

cd /usr/local/bin/

./redis-server /home/admin/redis/redis-5.0.7/theRedisConf/redis.conf

②启动三台哨兵服务(先启主机,后启从机)

cd /usr/local/bin/

./redis-sentinel /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf

4.全部启动后查看哨兵的配置文件

cat /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf |grep -v “#”|grep -v “^$”


5.校验哨兵是否启动成功

①连接哨兵:

redis-cli -p 26379或者进到src下执行 ./redis-cli -p 26379

②查询当前节点状态:

info sentinel

127.0.0.1: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.60.83:6379,slaves=2,sentinels=3

③查看主节点状态

sentinel master mymaster

④查看从节点状态

sentinel slaves mymaster

⑤查看所有哨兵状态

sentinel sentinels mymaster

6、让从节点脱离哨兵集群的测试:

前提:哨兵模式(3个redis:60.83(主节点)、60.84、60.85,以及3个哨兵)

redis从节点执行“SLAVEOF NO ONE”命令,将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。


测试1:启动三个哨兵,60.85执行变主节点命令,马上查询信息变为主节点,自身没有从节点。同时查询60.83仍然是主节点,60.85仍是它的从节点。过不到一分钟查看60.85变回60.83的从节点(下图为60.83的信息)。

结论:哨兵的配置文件中记录着redis主节点和从节点的IP,一旦哨兵发现某个从节点“独立”了,会把这个从节点拉回redis集群中。测试1从节点脱离主节点失败。



测试2:关闭所有哨兵,60.85执行变主节点命令,马上查询信息变为主节点,自身没有从节点。同时查询60.83仍然是主节点,60.85不再是它的从节点。过一分钟查看60.85没有变回60.83的从节点。


重启60.85服务后,查看60.83,60.85成为了60.83的从节点,查看60.85显示为60.83的从机。

结论:因为60.85的配置文件中将60.83设置为主节点,重启60.85的服务后将回归为60.83的从节点。


最后的结论:命令是即时生效的,配置文件中的设置是每次启动服务时生效的,当执行了“SLAVEOF NO ONE”只会暂时让redis从机脱离集群(不开哨兵的情况下)。想要让redis从机60.85永久的从哨兵模式的redis集群中脱离,需要关闭redis从机60.85和所有哨兵,再删除redis从机60.85配置文件中的redis主机60.83的IP信息、所有哨兵配置文件中关于redis从机60.85的IP信息,最后重启edis60.85和所有哨兵。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
127 0
|
8天前
|
消息中间件 NoSQL Redis
【赵渝强老师】Redis消息的生产者消费者模式
消息队列在Redis中可通过List数据结构实现,支持发布者订阅者和生产者消费者两种模式。生产者通过`lpush`向List添加消息,消费者通过`rpop`或`brpop`消费消息,后者支持阻塞等待。示例代码展示了如何使用Redis的生产者消费者模式。
|
1月前
|
监控 NoSQL 算法
Redis Sentinel(哨兵)详解
Redis Sentinel(哨兵)详解
|
1月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
61 4
|
1月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
33 3
|
1月前
|
SQL 分布式计算 NoSQL
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
25 2
|
1月前
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
56 1
|
2月前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
|
2月前
|
NoSQL 网络协议 Redis
Redis的主从复制和哨兵模式
本文详细介绍了Redis的主从复制配置、原理(包括全量复制和增量复制)以及如何搭建一主二从的Redis集群,同时还探讨了Redis哨兵模式的概念、配置文件、以及如何配置一主二从三哨兵的Redis哨兵模式,以实现高可用性。
|
3月前
|
运维 监控 NoSQL
【Redis】哨兵(Sentinel)原理与实战全解~炒鸡简单啊
Redis 的哨兵模式(Sentinel)是一种用于实现高可用性的机制。它通过监控主节点和从节点,并在主节点故障时自动进行切换,确保集群持续提供服务。哨兵模式包括主节点、从节点和哨兵实例,具备监控、通知、自动故障转移等功能,能显著提高系统的稳定性和可靠性。本文详细介绍了哨兵模式的组成、功能、工作机制以及其优势和局限性,并提供了单实例的安装和配置步骤,包括系统优化、安装、配置、启停管理和性能监控等。此外,还介绍了如何配置主从复制和哨兵,确保在故障时能够自动切换并恢复服务。