Java学习 - Redis-Sentinel

主从复制存在的问题与解决

  • 问题
    • 发生故障时,需要手动进行故障转移
    • 写能力和存储能力受限
  • 解决
    • redis官方推出redis-sentinel
    • 可以自动实现主从复制的故障恢复
    • 用于实现redis的高可用

redis-sentinel简介

  • sentinel是特殊的redis,不存储数据,支持的命令很有限

  • 默认端口 26379

  • 架构图

    在这里插入图片描述

redis-sentinel故障转移流程

  1. sentinel层中多个sentinel发现master节点发生异常
  2. sentinel层选举中一个sentinel作为领导者
  3. sentinel领导者选举出一个slave节点为新的master节点
  4. sentinel层通知其他的slave成为新master节点的slave
  5. sentinel层通知客户端主从节点发生了改变
  6. 等待旧master复活成为新master的slave

redis-sentinel配置与使用

  • 先设置好主从复制,即一个master,以及一个或多个slave

  • 启动redis-sentinel

    >> redis-sentinel redis-sentinel-26381.conf
    
  • 查看sentinel状态

    redis-cli -h 127.0.0.1 -p 26389 info sentinel
    
  • sentinel配置

    配置项配置说明
    daemonize yes|no是否以守护进程方式启动sentinel
    portsentinel占用端口
    dirsentinel工作目录
    logfilesentinel日志文件名
    pidfilesentinel进程文件名
    sentinel monitor mymaster 127.0.0.1 7000 2主节点主机和端口,多少个sentinel认为有问题
    sentinel down-after-milliseconds mymaster 3000030秒不通,则认为有问题
    sentinel parallel-syncs mymaster 1故障恢复时,一次复制1个
    sentinel failover-timeout mymaster 180000

redis-sentinel的redigo使用

TODO

redis-sentinel的原理【选学】

主观下线和客观下线
  • 主观下线:一个sentinel节点认为某个redis节点失败
  • 客观下线:超过指定数目的sentinel节点都认为某个redis节点失败
三个定时任务
  • 每10秒每个sentinel对master和slave执行info命令
    • 掌控整个体系中的redis,以及它们的关系
  • 每2秒每个sentinel通过master节点的channel交换信息
    • 通过_sentinel_:hello频道交互
    • 交互对节点的"看法"和自身信息
  • 每1秒每个sentinel向其他sentinel和redis执行ping
    • 心跳检测,判断其他的sentinel和redis是否还正常工作
领导者选举
  1. 每个做客观下线的sentinel节点向其他sentinel节点发送命令sentinel is-master-down-by-add,请求成为领导者
  2. 受到命令的sentinel节点如果没有同意其他sentinel节点发送的命令,那么将同意改请求,否则拒绝
  3. 如果sentinel发现自己的票数已经超过半数,则将成为领导者
  4. 如果此过程中有多个sentinel成为领导者,则等待一段时间后重新进行选举
新master节点的选择
  • 这个操作由sentinel领导者完成
  • 选择标准
    1. 如果redis节点有设置slave-priority,则选择最高那个,否则下一步
    2. 选择复制偏移量最大的redis节点,如果不存在,则下一步
    3. 选择runid最小那个redis节点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序根据蓝牙RSSI信号强度测试设备距离

背景 在做小程序连接蓝牙设备的时候,有需求表明在搜索到0.5米之内的设备时自动连接 问题: 蓝牙模组只提供了RSSI信号强度,那又该如何计算蓝牙设备距离小程序的距离呢? 解决方案 通过以下公式做大量测试:求 A、n 的平均…

​​Linux(CentOS)​​同步服务器时间之~​​chrony​​

Chrony 是一款开源的网络时间协议(NTP)客户端和服务端软件,旨在提供高精度的时间同步功能。相较于传统的 NTP 实现如 ntpd,Chrony 提供了一些改进和优势,包括更快的同步速度、低延迟、低CPU占用和低内存消耗。以下是 Chrony 的几个关键特性和…

DIY:在您的 PC 上本地使用 Stable Diffusion AI 模型生成图像

前言 随着DALL-E-2和Midjourney的发布,您可能听说过最近 AI 生成艺术的繁荣。这些人工智能模型如何在几秒钟内创造性地生成逼真的图像,这绝对是令人兴奋的。您可以在这里查看其中的一些:DALL-E-2 gallery和Midjourney gallery 但是这些模型…

【机器学习】自然语言处理的新前沿:GPT-4与Data Analysis

目录 1、生成二维码Prompt:请用二维码编码这个信息,我爱chatgpt2、分析PDFPrompt:请分析这篇pdf的主要内容,用中文输出分析结果,100字3、设计网站Prompt:请帮我设计一个网站,网站的主题是哪吒玩…

分享10个AI搞钱副业,门槛低,普通人也能学的会!易上手!

前言 本期给大家分享的是利用AI 做副业的一些方法,大家可以挑选适合自己的赛道去搞钱 现在是人工智能时代,利用好AI 工具,可以降低普通人做副业的门槛,同时也能提高工作效率, 因此AI 赚钱的副业还是挺多的&#xff0…

Java SE入门及基础(57) Java常用API 日期时间

目录 日期时间 1. Date 类 常用方法 示例 思考: 2. SimpleDateFormat 类 常用方法 常用日期格式 示例 3. Calendar 类 常用静态字段 常用方法 示例 日期时间 1. Date 类 常用方法 public Date (); // 无参构造,表示计算机系统当前时间…

PFA样品瓶带氟树脂接头试剂瓶可定制接1/4英寸管300ml

PFA带接头试剂瓶,也称作特氟龙洗气瓶,材质有PFA(可溶性聚四氟乙烯)和FEP(聚全氟乙丙烯),市场上一般问的聚四氟乙洗气瓶就是PFA洗气瓶,造型上有是2个管子接入瓶内,长进短出,带有四氟滤球,管子尺寸…

手持小风扇哪个牌子比较好?五大热门手持小风扇品牌推荐

炎炎夏日,真的需要一款随身小风扇来拯救我们的高温困境!不过,市面上的选择太多了,真的让人眼花缭乱。今天,我就给大家快速推荐五款热门的手持小风扇,它们不仅轻便易携,而且各有特色。有的是风力…

下穿隧道结构安全该如何保证,检测跟自动化监测该如何抉择

隧道监测背景: 隧道所处的地下环境较为复杂,易受地质条件恶化、结构损伤、退化失稳以及自然灾害等因素影响,引发隧道拱顶开裂、边墙开裂、衬砌损坏、隧道渗漏水、围岩大变形等病害,从而导致隧道安全事故发生,尤其在长期…

Flat Ads:拥抱 CTV,品牌增长新动力

近年来,CTV(联网电视)在数字营销界正迅速崛起,成为最受青睐和增长迅猛的推广形式之一。 随着更多联网设备的普及,越来越多观众正在从传统电视快速转移到流媒体环境,对传统电视广告取而代之的便是 CTV 广告。据 eMarketer 数据显示,未来四年,CTV 市值将从今年的 250 亿美元增长到…

大疆车载的第一款油车智驾:上汽大众途观L Pro的智能辅助驾驶系统

引言 在自驾行业中,有一个低调但迅速崭露头角的选手——大疆车载。自2016年成立以来,大疆车载(现已更名为卓御)通过其先进的智能驾驶技术,逐渐在市场上赢得了声誉。此次,上汽大众途观L Pro成为大疆车载首款…

一文带你彻底搞懂设计模式之单例模式!!由浅入深,图文并茂,超超超详细的单例模式讲解!!

一文带你彻底搞懂设计模式之单例模式! 一、什么是单例模式?单例模式分类饿汉式创建单例对象懒汉式创建单例对象 多问一个为什么? 二、为什么要有单例模式?使用单例模式的原因单例模式的应用场景 三、多线程下的单例模式饿汉式懒汉…

鸿蒙:自定义组件、自定义函数、自定义样式

一、自定义组件 1.新建组件文件夹,新建自定义组件文件 . 2.编辑自定义组件,并通过 Component //声明组件 export struct PageHeader { //结构体private title: stringbuild() { //uiRow() {Image($rawfile(左返回.png)).width(15%)Text(this.title)…

Docker 安装最新版本 Jenkins

目录 1、下载、启动容器、更新到最新版本 2、查看初始密码两种方式: 3、默认安装的部分未汉化,删除默认的汉化插件。重启容器,重新安装汉化插件 4、安装 Publish over SSH、docker-build-step 、Docker Commons 插件 5、配置服务器连接信…

前端学习 Vue 插槽如何实现组件内容分发?

目录 一、Vue.js框架介绍二、什么是Vue 插槽三、Vue 插槽的应用场景四、Vue 插槽如何实现组件内容分发 一、Vue.js框架介绍 Vue.js是一个用于构建用户界面的渐进式JavaScript框架。它设计得非常灵活,可以轻松地被集成到现有的项目中,也可以作为一个完整…

Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试

目录 1. 简介 2. 实例测试 2.1 实例介绍 2.2 创建工程 2.2.1 创建工程 2.2.2 获取路径 2.2.3 设置路径 2.2.4 打开工程 2.2.5 添加文件 2.2.6 启动 GUI 2.2.7 配置 csim 参数 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries …

如何清空Comfyui的gpu缓存

由于我电脑上同时装了两个Comfyui作为我站点的绘图服务,一个是给正式服使用,一个是开发测试使用,在使用过程中经常会因为两个Comfyui服务跑图后没有自动释放显存导致爆显存。所以我需要让Comfyui跑完图之后可以自动释放显存。 我自己在网上找…

C语言学习记录(十一)——指针基本知识及运算

文章目录 前言1. 指针的概念2.指针变量的说明3. 指针的含义4. 指针运算①指针加减:②指针的关系运算符 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 1. 指针的概念 在C语言中&…

阐述以下方法 @classmethod, @staticmethod, @property?

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…