首页 > 数据库 >Redis学习(Redis哨兵) 持续更新中

Redis学习(Redis哨兵) 持续更新中

时间:2023-07-20 19:56:51浏览次数:54  
标签:slave Redis 更新 哨兵 故障 master 节点

Redis学习(Redis哨兵)

引入:master节点宕机怎么办

一个可行的解决办法是:在master节点宕机之后,立刻将一个slave节点变成master节点,之后将恢复后的master节点变为slave节点

那么监测和重启该怎么做,这里我们就需要哨兵

哨兵的作用和原理

哨兵(Sentinel)实现主从集群的自动故障恢复

  • 监控:哨兵不断检查master和slave是否按预期工作
  • 恢复:master故障后,sentinal会将slave提升为master
  • 通知:sentinal充当Redis客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送到Redis的客户端

pCHUyKf.png

服务状态监控

sentinal基于心跳机制监测服务状态,也就是每隔1s向集群的每个示例发送ping命令

  • 主观下线:某个哨兵节点发现某个实例未在规定时间内响应,则认为该实例主观下线
  • 客观下线:超过指定数量(quorum)的哨兵认为该实例主观下线,则该实例就是客观下线。quorom最好超过哨兵实例数量的一半

选举新的master

选举新的master的依据如下:

  • 首先判断slave与master节点断开时间的长短,如果超过指定值则会排除该slave节点
  • 然后判断slave节点的slave-priotity,越小优先级就越高,但是当优先级为0时代表永远不会被提升为master节点
  • 判断slave的offset,越大代表数据越新,优先级越高
  • 前面都一样的情况下判断slave节点的运行id大小,越小则优先级越高

如何实现故障转移

故障转移的步骤如下:

  • 哨兵给备选的slave节点发送slave of no one的指令,让该节点成为master
  • 哨兵给其它所有的slave节点发送slaveof命令,让这些slave成为新master的从节点,并且从新的master上同步数据
  • 最后,哨兵节点将故障节点标记为slave,当故障节点恢复后自动成为新的master的slave节点

标签:slave,Redis,更新,哨兵,故障,master,节点
From: https://www.cnblogs.com/anewpro-techshare/p/17569492.html

相关文章

  • Redis集群搭建
    Redis集群是Redis提供的一种高可用性和容错性解决方案,它通过将数据分片存储在多个节点上来实现数据的自动分布和负载均衡。要搭建Redis集群,可以按照以下步骤进行操作。一、准备服务器这以3台服务器为例,分别192.168.3.100 node1192.168.3.102 node3192.168.3.103 node2......
  • MYSQL 更新sql
    MYSQL更新SQL实现步骤作为一名经验丰富的开发者,我将指导你如何实现MYSQL的更新SQL。下面是整个流程的步骤展示:步骤描述步骤1连接到MYSQL数据库步骤2构建更新语句步骤3执行更新语句步骤4关闭数据库连接步骤1:连接到MYSQL数据库在执行更新SQL之前,我们首......
  • Redis的五大数据类型及其使用场景
    前言redis是一个非常快速‎‎的非关系数据库‎‎解决方案。其简单的键值数据模型使Redis能够处理大型数据集,同时保持令人印象深刻的读写速度和可用性。‎redis提供了五种数据类型,分别是是:1、string(字符串);2、hash(哈希);3、list(列表);4、set(集合);5、sortset(有序集合)(其实随着Redis......
  • Redissonclient怎么添加数据
    Redisson是一个基于Redis的分布式Java对象和服务的框架。RedissonClient是Redisson的主要接口之一,用于与Redis进行交互。要添加数据到Redis中,可以使用RedissonClient提供的多种方法,包括常见的数据结构如字符串、列表、集合、有序集合和哈希表等。首先,我们需要在项目中添加Redisson......
  • RedisTemplate 泛型不同 指向的是同一个实例吗
    RedisTemplate泛型不同指向的是同一个实例吗在使用RedisTemplate时,我们经常会遇到需要指定不同数据类型的情况。比如,我们可能需要将某个对象存储到Redis中,并且需要使用不同的数据类型进行序列化和反序列化。那么,RedisTemplate在这种情况下会创建多个实例吗?本文将解答这个问......
  • RedisSubscriber redis
    RedisSubscriber:一个订阅者模式的简介在分布式系统中,订阅者模式是一种非常有用的设计模式,它能够帮助我们实现消息的发布与订阅。Redis作为一种流行的内存数据库,其中的发布-订阅机制使得实现订阅者模式变得非常简单。什么是RedisSubscriberRedisSubscriber是一个Redis客户端库,......
  • Redis 3.2win
    如何在Windows中安装Redis3.2概述在本篇文章中,我将向你介绍如何在Windows系统中安装Redis3.2。Redis是一个开源的内存数据库,用于存储和检索数据。由于Redis在性能和可靠性方面具有很高的声誉,因此学习如何在你的开发环境中安装和配置Redis是非常重要的。安装步骤下面是安装Red......
  • Ubuntu安装Redis并设置开机启动
    Ubuntu安装Redis并设置开机启动1.简介在这篇文章中,我将教会你如何在Ubuntu操作系统上安装Redis,并设置Redis开机启动。Redis是一个开源的内存数据结构存储系统,常用于缓存、消息队列和会话存储。通过本文的步骤,你将能够轻松地安装Redis,并确保它在系统启动时自动运行。2.安装Redi......
  • 单线程 Redis 如此快的 4 个原因
    本文翻译自国外论坛medium,原文地址:https://levelup.gitconnected.com/4-reasons-why-single-threaded-redis-is-so-fast-414e0106f921作为内存数据存储,Redis以其速度和性能而闻名,通常被用作大多数后端服务的缓存解决方案。然而,在Redis内部采用的也只是单线程的设计。为什么......
  • Redis
    基本结构nosql阿里巴巴架构演进nosql数据模型nosql四大分类CAPBASERedis入门Redis安装(Window&Linux服务器)五大基本类型三种特殊数据类型geohyperloglogbitmapRedis配置详解Redis持久化RDBAOFRedis事务操作R......