首页 > 数据库 >Redis 数据库的哨兵模式

Redis 数据库的哨兵模式

时间:2023-04-05 14:16:21浏览次数:28  
标签:数据库 Redis 哨兵 监控 Sentinel 服务器 下线

1. 哨兵模式 1.1 哨兵模式的结构和作用   哨兵(Sentinel)是 Redis 官方提供的一种高可用方案,它可以监控多个 Redis 服务实例的运行情况。本质上,Sentinel 也是一个运行在特殊模式下的 Redis 服务器。主从复制模式下,一般会配置多个 Sentinel 节点,通过互相协作来实现系统的高可用。   1.2 哨兵模式的作用 Sentinel 模式的作用如下: (1)监控:Sentinel 不断的检查主服务和从服务器是否按照预期正常工作; (2)提醒:被监控的 Redis 出现问题时,Sentinel 会通知管理员或其他应用程序; (3)自动故障转移:监控的主 Redis 不能正常工作,Sentinel 会自动进行故障迁移操作。即将一个从服务器升级新的主服务器,并让其他从服务器挂到新的主服务器,同时向客户端提供新的主服务器地址。   1.3 Sentinel 监控原理 Sentinel 基于心跳机制监测服务状态,每隔 1 秒向集群的每个实例发送 ping 命令: (1)主观下线:如果某 sentinel 发现某实例未在规定时间响应,则认为该实例主观下线。 (2)客观下线:若超过指定数量(quorum)的 sentinel 都认为该实例主观下线,则该实例客观下线。quorum 值最好超过 Sentinel 实例数量的一半。   2. 哨兵模式小结 (1)Sentinel 会不断检查 Master 和 Slave 是否正常; (2)如果 Sentinel 挂了,就无法监控,所以需要多个哨兵,组成 Sentinel 网络,一个健康的 Sentinel 至少有 3 个 Sentinel 应用; (3)监控同一个 Master 的 Sentinel 会自动连接,组成一个分布式的 Sentinel网络,互相通信并交换彼此关于被监控服务器的信息; (4)当一个 Sentinel 认为被监控的服务器已经下线时,它会向网络中的其它Sentinel 进行确认,判断该服务器是否真的已经下线; (5)如果下线的服务器为主服务器,那么 Sentinel 网络将对下线主服务器进行自动故障转移。通过将下线主服务器的某个从服务器提升为新的主服务器,并让其从服务器转移到新的主服务器下,以此来让系统重新回到正常状态; (6)下线的旧主服务器重新上线,Sentinel 会让它成为从节点,挂到新的主服务器下。

标签:数据库,Redis,哨兵,监控,Sentinel,服务器,下线
From: https://www.cnblogs.com/qiqi-yi/p/17289334.html

相关文章

  • Redis 数据库的主从复制
    1.主从复制1.1什么是主从复制主从复制,是将多台数据库服务器分为主节点(master)和从节点(slaver),主节点数据更新后会根据配置和策略,自动同步到从节点上,从而保证主从节点中存有相同的数据。 1.2主从复制的作用有了主从复制,数据可以有多份副本,这就带来了很多好处:(1)提升......
  • Docker 下 Redis 数据库的持久化
    1、Docker容器的数据卷Docker是将系统与运行的环境打包成容器来运行,当容器删除后,容器里的系统自然也就没有了。但是,在实际的项目中,希望Docker容器产生的数据能够持久化,同时容器之间也能够共享数据。Docker提供了数据卷技术来实现这些需求。数据卷就是目录或文件,存......
  • Redis 数据库的持久化
    1、Redis持久化1.1什么是持久化持久化可以理解为数据的永久存储,就是将数据存储到一个不会丢失的地方。如果把数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就是一种持久化。 1.2Redis的持久化Redis的数据存储在内存......
  • Redis 数据库的事务机制
    1、Redis事务机制1.1事务的定义事务是指一系列操作数据库的步骤,这一系列的操作步骤,要么完全地执行,要么完全地不执行。 1.2Redis的事务同样,Redis中的事务也是一组命令的集合,至少是两个或两个以上的命令。Redis事务是一个单独的隔离操作,事务中的所有命令都会序......
  • Redis事务与Lua脚本
    Redis的事务没办法保证一致性,使用Lua脚本也不能保证。Lua脚本能保证一致性,而且比redis的事务实习要简洁健壮。转载:https://maimai.cn/article/detail?fid=1538576512&efid=SQ3XsywteU9lIxil766Lxw......
  • 蓝图的使用、g对象、数据库连接池
    蓝图的使用#blueprint翻译过来的,称之为蓝图#作用是:之前全在一个py中写flask项目,后期肯定要划分目录#不用蓝图,划分目录no_blueprint_flask#项目名src#核心源码位置__init__.py#包里面实例化得到了app对象,mode......
  • flask_day03:蓝图的使用、g对象、数据库连接池
    目录回顾蓝图的使用不用蓝图,划分目录蓝图的使用步骤使用蓝图,划分小型项目目录使用蓝图,划分大型项目目录g对象g对象是什么?使用场景g和session有什么区别?数据库连接池flask操作mysql使用步骤回顾1.cbv的使用 写一个类继承MethodView,写get、post。。。 类属性decorators=[auth......
  • mysql数据库安装
    参考连接1、超级详细的mysql数据库安装指南2、MySQL安装过程中,出现CheckRequirements缺少C++动态库即MicrosoftVisualC++2013Redistributable问题二、安装步骤(基本和第一个参考链接相同,下面是差异的地方)1、检查安装要求,不可以点击Next,点击Execute会出现错误。提示没有......
  • 数据库系统原理之数据库应用设计与开发实例
    数据库应用设计与开发实例第一节需求描述与分析在此,结合某高校个性化课程在线选课的实际需求,给出一个简化的需求分析一、功能性需求1管理员后台模块学生信息管理教师信息管理课程信息管理班级信息管理2学生使用模块查询课程浏览所选课程查询成绩3教师使用模......
  • Redis未授权访问Getshell
    漏洞成因有些redis绑在0.0.0.0:6379,没有开启验证或者没有设置对未知ip来源进行限制以及默认的空密码就导致了redis默认访问但是这个普遍的漏洞极可能造成后门植入getshell,也可能造成反弹shell权限维持,甚至会造成ssh直接免密连接服务器开始复现搭建环境服务器操作系统为ubuntu......