码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis 哨兵集群方案


    Redis Sentinel集群方案(哨兵)

    目录

    Redis Sentinel集群方案(哨兵)

    架构梳理

    工作原理

    集群的常见管理手段

    启停管理

    info replication 查看主从关系

    sentinel master 查看主信息

    sentinel replicas 查看从信息

    在线扩容

    如何彻底下线从节点

    常见命令

    SENTINEL master mymaster

    SENTINEL masters

    SENTINEL replicas mymaster

    SENTINEL sentinels

    SENTINEL get-master-addr-by-name mymaster

    SENTINEL config get *

    SENTINEL config set [name]

    SENTINEL set mymaster down-after-milliseconds 30000

    SENTINEL CKQUORUM mymaster

    SENTINEL MONITOR mymaster 192.168.128.167 6379 2

    SENTINEL REMOVE

    SENTINEL FAILOVER mymaster


    架构梳理

    Redis Sentinel 是一个分布式架构,包含若干个 Sentinel 节点和若干个 Redis 数据节点

    每个 Sentinel 节点会对 Redis 数据节点和其余 Sentinel 节点进行监控,当发现节点不可达时,会对节点做下线标识。

    如果被标识的是 Redis 主节点,它会和其他 Sentinel 节点进行“协商”,当大多数的 Sentinel 节点都认为主节点不可达时,他们会选举出一个 Sentinel 节点来完成自动故障转移工作,同时将这个变化通知Redis 应用方

    工作原理

    每个 Sentinel 以每秒钟一次的频率向它所知的 Master,Slave 以及其他 Sentinel 实例发送一个 PING 命令。

    如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 所指定的值,则这个实例会被 Sentinel 标记 为主观下线。

    如果一个 Master 被标记为主观下线,则正在监视这个 Master 的所有 Sentinel 要以每秒一次的频率确认 Master 是否进入了主观下线状态

    若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除

    当有足够数量的 Sentinel(大于等于配置值)在指定的时间范围内确认 Master 的确进入了主观下线状态,则 Master 会被标记为客观下线

    若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除

    Master 客观下线后,会在 Master 所在的 Slave 中进行重新选取 Master

    注意:哨兵本身作用于集群状态的高可用,作用于 master 节点挂掉后的主备切换,不能解决 redis 本身数据不一致的问题

    集群的常见管理手段

    启停管理

    启动时:

    先启 redis 进程,再启 sentinel 进程(按顺序可防止主从切换)

    redis-server redis-{port}.conf

    redis-sentinel conf/sentinel_{port}.conf

    停止时:

    先停 sentinel 进程,再停 redis 进程(按顺序可防止主从切换)

    redis-cli -p 26378 shutdown

    redis-cli -p 6378 shutdown

    或者

    kill 进程号

    一般情况下,我们不必要用 kill -9,这样 redis 不会进行持久化操作,除此之外,还会造成缓冲区等资源不能优雅关闭,极端情况下会造成 AOF 和复制丢失数据的情况

    info replication 查看主从关系

    sentinel master 查看主信息

    sentinel replicas 查看从信息

    在线扩容

    场景

    说明

    操作

    节点内存扩容

    节点内存不够,但主机存在足够内存

    通过 config set maxmemory 在线修改配置参数

    添加从节点

    单纯增加一个从节点

    1. 搭建新节点

    2. 建立主从关系即可

    从节点迁移扩容

    节点内存不够,主机内存也不够,通过新机器来承载节点

    由 A->B,A->C 变成 A->B,A->D

    1. 将新节点加入到集群中

    2. 下线原有从节点

    主节点迁移扩容

    节点内存不够,主机内存也不够,通过新机器来承载节点

    由 A->B,A->C 变成 D->B,D->C

    1. 将新节点加入到集群中

    2. 将主节点进行强制转移

    3. 下线原有主节点

    如何彻底下线从节点

    将每一个 sentinel_.conf 中的副本节点删除掉

    常见命令

    SENTINEL master mymaster

    查看集群的 master

    SENTINEL masters

    查看所有 master(一个 sentinel 节点可以多个 Redis 主)

    SENTINEL replicas mymaster

    看某个集群的 salves

    SENTINEL sentinels

    查看 sentinel 节点信息

    SENTINEL get-master-addr-by-name mymaster

    查看集群的主地址

    SENTINEL config get *

    查询通用配置信息

    SENTINEL config set [name]

    设置通用配置信息

    SENTINEL set mymaster down-after-milliseconds 30000

    设置 sentinel 配置信息

    SENTINEL CKQUORUM mymaster

    用来判断 sentinel 集群是否可故障转移

    SENTINEL MONITOR mymaster 192.168.128.167 6379 2

    针对某个 sentinel 节点加入对 Redis 集群的监控

    SENTINEL REMOVE

    针对某个 sentinel 节点停止监控(会清空配置信息,慎用)

    SENTINEL FAILOVER mymaster

    强制主服务器转移

  • 相关阅读:
    GBase 8c 创建和管理Schema (三)
    大模型深挖数据要素价值:算法、算力之后,存储载体价值凸显
    C#_预处理指令
    将Nacos注册到springboot使用以及Feign实现服务调用
    PHP M题 20221104
    学生选修课程管理系统c++
    数据结构:排序- 插入排序(插入排序and希尔排序) , 选择排序(选择排序and堆排序) , 交换排序(冒泡排序and快速排序) , 归并排序
    网络技术-安全评估技术
    江西农业大学择校分析(附23招生简章)
    决胜北交大深度学习算法大赛,冠军揭示通关攻略
  • 原文地址:https://blog.csdn.net/qq_32378713/article/details/126341366
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号