redis的哨兵机制

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: redis的哨兵机制

   为了达到redis的高可用,有两种部署方式:主从复制+哨兵机制;集群模式。哨兵机制是redis2.8开始支持。集群模式是redis3.0开始支持。

   主从复制的意义:

   主从复制可以把主节点的数据复制给从节点。从节点可以备份主节点的数据,起到主节点down调,顶上来接替主节点工作的作用。也可以起到分担主节点读压力的作用。

   没有哨兵机制的时候,主从复制结构部署存在的问题是什么?也可以说redis主节点发生故障如何解决?

   如果主节点down调,主从切换需要人工介入。

   主从切换步骤为:

   1、启用从节点为主节点。命令:slaveof no one

   2、旧主节点的其他从节点变成新主节点的从节点。命令:slaveof new master

   3、通知应用方redis主节点变成了新主节点。 修改客户端调用的地址并重启客户端。

   4、旧主节点变成新主节点的从节点。  命令:slaveof new master

   

   哨兵机制存在的意义:

   为了实现redis故障转移的自动化。自动发现,自动转移。不需要人工参与。


   哨兵机制是怎样的部署结构?

   结合上图,主从复制节点是数据节点,哨兵机制部署的节点是监控节点,它们都是redis实例。但是哨兵节点不存储数据,它们监控主从数据节点的状态,若哨兵判定主节点down掉后,就会自动执行上边提到的手工操作的4步。

   哨兵节点自动化完成故障转移的过程:


   哨兵机制是怎样判断主节点down调的?

   哨兵机制是建立了多个哨兵节点,它们共同监控数据节点的运行状况。同时哨兵节点之间也互相通信。交换对主从节点的监控状况。下面提到两个概念:

   主观下线和客观下线:一个哨兵节点判定主节点down掉是主观下线。只有半数个哨兵节点都主观判定主节点down掉,此时多个哨兵节点交换主观判定结果,才会判定主节点客观下线。

   基本上哪个哨兵节点最先判断出这个主节点客观下线,就会在各个哨兵节点中发起投票机制,每个哨兵都投自己为领导者。最终被投为领导者的哨兵节点完成主从自动化切换的过程。当判断为主观下线时,不会进行主从切换过程。



总结:

   肉多嚼不烂,一个一个啃。

   能让工具(程序)去做的事情,就不要自己去做。

   monitor处处有,自动发现,自动报警,自动解决。流程化的东西就可以考虑让它自动化。


参考书籍:

    《redis开发与运维》


相关实践学习
基于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
相关文章
|
7月前
|
NoSQL Redis Sentinel
【怒怼大厂面试官】听说你精通Redis?说说Redis哨兵
面试官:Redis哨兵知道吧?知道的,Sentinel哨兵本质是一个运行在特殊模式下的Redis服务器。面试官:嗯然后呢?它的主要作用是通过检测Redis主从服务器的下线状态,选举出新Redis主服务器,也就是故障转移,来保证Redis的高可用性。
112 4
【怒怼大厂面试官】听说你精通Redis?说说Redis哨兵
|
6月前
|
运维 监控 NoSQL
Redis Sentinel哨兵模式部署
Redis Sentinel哨兵模式部署
122 2
|
2月前
|
监控 NoSQL 算法
Redis Sentinel(哨兵)详解
Redis Sentinel(哨兵)详解
162 4
|
3月前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
|
4月前
|
运维 监控 NoSQL
【Redis】哨兵(Sentinel)原理与实战全解~炒鸡简单啊
Redis 的哨兵模式(Sentinel)是一种用于实现高可用性的机制。它通过监控主节点和从节点,并在主节点故障时自动进行切换,确保集群持续提供服务。哨兵模式包括主节点、从节点和哨兵实例,具备监控、通知、自动故障转移等功能,能显著提高系统的稳定性和可靠性。本文详细介绍了哨兵模式的组成、功能、工作机制以及其优势和局限性,并提供了单实例的安装和配置步骤,包括系统优化、安装、配置、启停管理和性能监控等。此外,还介绍了如何配置主从复制和哨兵,确保在故障时能够自动切换并恢复服务。
|
6月前
|
监控 NoSQL Java
redis哨兵架构
不过为了高可用一般都推荐至少三个哨兵节点。为什么推荐奇数个哨兵节点跟集群奇数个master节点类似。
51 0
redis哨兵架构
|
5月前
|
消息中间件 监控 NoSQL
Redis哨兵改集群
【7月更文挑战第7天】
|
5月前
|
缓存 NoSQL Redis
Redis复制、哨兵
Redis复制、哨兵
47 0
|
6月前
|
存储 监控 NoSQL
Redis系列学习文章分享---第十二篇(搭建哨兵集群+RedisTemplate连接哨兵+搭建分片集群+-散列插槽+集群伸缩 +故障转移+RedisTemplate访问分片集群)
Redis系列学习文章分享---第十二篇(搭建哨兵集群+RedisTemplate连接哨兵+搭建分片集群+-散列插槽+集群伸缩 +故障转移+RedisTemplate访问分片集群)
279 0