Redis | 哨兵模式
Redis | 哨兵模式
1. 简介
Redis Sentinel(哨兵)是Redis提供的一种高可用性解决方案。它是一个独立的进程,用于监控和管理Redis主从模式的节点,并在主节点故障时自动进行故障转移。哨兵模式可以确保Redis集群的高可用性和数据一致性。
在哨兵模式中,有一个主节点(Master)和多个从节点(Slave),以及一个或多个哨兵(Sentinel)。主节点负责接收写操作和复制数据到从节点,而从节点负责复制主节点的数据。哨兵负责监控主节点和从节点的状态,并在主节点故障时自动将一个从节点提升为新的主节点。
以下是Redis哨兵模式的一些特点和工作原理:
- 哨兵选举:在启动时,每个哨兵都会对主节点进行投票选举,选出一个领头哨兵(Leader Sentinel)。领头哨兵负责协调故障转移过程。
- 监控:哨兵会定期检查Redis节点的健康状态,包括主节点和从节点的状态。如果发现主节点不可用,哨兵会触发故障转移。
- 故障转移:当主节点不可用时,领头哨兵会选出新的主节点,并通知其他哨兵和从节点进行切换。在故障转移期间,客户端的请求会被暂时拒绝,直到新的主节点选举完成。
- 数据一致性:在进行故障转移时,哨兵会确保新的主节点和从节点与旧的主节点数据保持一致。因此,即使主节点故障,数据不会丢失。
2. 配置
-
配置Redis主节点:
在主节点的配置文件(redis.conf)中,设置requirepass选项为主节点的密码。例如:requirepass your_redis_password -
配置Redis从节点:
在从节点的配置文件(redis.conf)中,设置masterauth选项为主节点的密码,并使用replicaof选项将从节点连接到主节点。例如:masterauth your_redis_password replicaof <master-ip> <master-port><master-ip>和<master-port>分别是主节点的IP地址和端口号。 -
配置Redis Sentinel:
创建一个名为sentinel.conf的新文件,其中指定以下选项:bind * sentinel resolve-hostnames yes sentinel monitor mymaster <master-ip> <master-port> <quorum> sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000 sentinel auth-pass mymaster <master-password>在
sentinel monitor中,mymaster是Redis实例的名称,<master-ip> <master-port>是主节点的IP地址和端口号,<quorum>是哨兵执行故障转移所需的最少哨兵数目。sentinel auth-pass配置了连接到主节点的密码,以便哨兵能够正确连接到Redis主节点。 -
启动Redis服务器和哨兵:
首先,启动带密码的Redis主节点和从节点。然后,分别启动哨兵进程,并使用配置文件启动:redis-sentinel /path/to/sentinel.conf
3. 演示
注意:因为每启动redis都会修改
sentinel.conf,如果之前测试过想重新开始测试,要将sentinel.conf内容恢复。
下面以1个主节点,2个从节点,1个哨兵节点演示。
文件树
hello-redis
├── docker-compose.yaml
└── sentinel└── sentinel.conf
文件
sentinel.conf
bind 127.0.0.1
sentinel resolve-hostnames yes
sentinel monitor mymaster 192.168.200.2 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel auth-pass mymaster 123456
docker-compose.yaml
version: "3.8"
networks:network:ipam:driver: defaultconfig:- subnet: '192.168.200.0/24'
services:master:container_name: masterimage: redis:7.0networks:network:ipv4_address: 192.168.200.2command:- redis-server- --replicaof no one- --requirepass 123456- --masterauth 123456- --bind * -::*replica1:container_name: replica1image: redis:7.0networks:network:ipv4_address: 192.168.200.3command:- redis-server- --requirepass 123456- --bind * -::*- --masterauth 123456- --replicaof 192.168.200.2 6379depends_on:- masterreplica2:container_name: replica2image: redis:7.0networks:network:ipv4_address: 192.168.200.4command:- redis-server- --requirepass 123456- --bind * -::*- --masterauth 123456- --replicaof 192.168.200.2 6379depends_on:- mastersentinel1:container_name: sentinel1image: redis:7.0networks:network:ipv4_address: 192.168.200.5volumes:- ./sentinel:/root/sentinelcommand:- redis-sentinel- /root/sentinel/sentinel.conf- --sentineldepends_on:- master
- 启动:在
hello-go文件夹下输入docker compose up启动。 - 测试故障转移:
docker stop master停止主节点,等待5秒就能从控制台或sentinel.conf中看到主节点发生切换。 - 恢复故障主节点:
docker start master就能看到master节点又加入集群,并且以从节点身份。
4. 注意
- 在生产环境中,建议使用多个哨兵和Redis Cluster等高级解决方案来实现更可靠和自动化的高可用性。
- 主节点也要指定
masterauth(主节点授权),防止主节点意外中止恢复正常后以无法以从节点身份连接到集群。
相关文章:
Redis | 哨兵模式
Redis | 哨兵模式 1. 简介 Redis Sentinel(哨兵)是Redis提供的一种高可用性解决方案。它是一个独立的进程,用于监控和管理Redis主从模式的节点,并在主节点故障时自动进行故障转移。哨兵模式可以确保Redis集群的高可用性和数据一…...
MySQL语句性能分析与优化
目录 SQL性能分析 SQL执行频率 SQL慢查询日志 Profile Explain SQL优化 插入数据的优化 主键优化 Order By优化 Group By优化 Limit 优化 Count 优化 Update 优化 多表连接查询优化 SQL性能分析 通过SQL性能分析来做SQL的优化,主要是优化SQL的查询语…...
SpringBoot实现数据库读写分离
SpringBoot实现数据库读写分离 参考博客https://blog.csdn.net/qq_31708899/article/details/121577253 实现原理:翻看AbstractRoutingDataSource源码我们可以看到其中的targetDataSource可以维护一组目标数据源(采用map数据结构),并且做了路由key与目标…...
Linux(四)--包软件管理器与Linux上环境部署示例
一.包软件管理器【yum和apt】 1.先来学习使用yum命令。yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。通过yum命令我们可以轻松实现软件的下载,查找,卸载与更新等管理软件的操作。 最常用…...
自监督去噪:Recorrupted-to-Recorrupted原理分析与总结
文章目录 1. 方法原理1.1 相关研究1.2 研究思路1.3 小结 2. 实验结果3. 总结 文章地址: https://ieeexplore.ieee.org/document/9577798/footnotes#footnotes 参考博客: https://github.com/PangTongyao/Recorrupted-to-Recorrupted-Unsupervised-Deep-Learning-for-Image-Den…...
【css】css实现水平和垂直居中
通过 justify-content 和 align-items设置水平和垂直居中, justify-content 设置水平方向,align-items设置垂直方向。 代码: <style> .center {display: flex;justify-content: center;align-items: center;height: 200px;border: 3px…...
常见Charles在Windows10抓包乱码问题
废话不多说 直接开整 最近反复安装证书还是乱码 网上各种百度还是不行 首先计算机查看安装好的证书 certmgr.msc 找到并删除掉 重新安装证书 具体解决方法: 第一步:点击 【工具栏–>Proxy–>SSL Proxying Settings…】 第二步:配置…...
汽车维修保养记录查询API:实现车辆健康状况一手掌握
在当今的数字化世界中,汽车维修保养记录的查询和管理变得前所未有地简单和便捷。通过API,我们可以轻松地获取车辆的维修和保养记录,从而实现对手中车辆健康状况的实时掌握。 API(应用程序接口)是进行数据交换和通信的标…...
正则表达式学习记录(Python)
正则表达式学习记录(Python) 一、特殊符号和字符 多个正则表达式匹配 ( | ) 用来分隔不同的匹配模式,相当于逻辑或,可以符合其中任何一个正则表达式 at | home # 表示匹配at或者home bat | bet | bit # 表示匹配bat或…...
Ubuntu20.04操作系统安装Docker
1、添加Docker仓库 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository \"deb [archamd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \$(lsb_release -cs) \stable"2、安装Docker sudo…...
python制作小程序制作流程,用python编写一个小程序
这篇文章主要介绍了python制作小程序代码宠物运输,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5 6 7 d…...
Github 创建自己的博客网站
参考pku大佬视频制作,附上B站视频:【GitHub Pages 个人网站构建与发布】 同时还参考了:【Python版宝藏级静态站点生成器Material for MkDocs】 GitHub Pages 介绍 内容参考:GitHub Pages - 杨希杰的个人网站 (yang-xijie.githu…...
Windows上安装 jdk 环境并配置环境变量 (超详细教程)
👨🎓博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…...
高效构建 vivo 企业级网络流量分析系统
作者:vivo 互联网服务器团队- Ming Yujia 随着网络规模的快速发展,网络状况的良好与否已经直接关系到了企业的日常收益,故障中的每一秒都会导致大量的用户流失与经济亏损。因此,如何快速发现网络问题与定位异常流量已经成为大型企…...
认识awk
awk 认识awk awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行…...
【C#学习笔记】数组和索引器
文章目录 数组单维数组多维数组交错数组 索引器类上的索引器方法1方法2 接口中的索引器 数组 数组具有以下属性: 数组可以是一维、多维或交错的。创建数组实例时,将建立纬度数量和每个纬度的长度。 这些值在实例的生存期内无法更改。数值数组元素的默认…...
常见距离计算的Python实现
常见的距离有曼哈顿距离、欧式距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离等,用Python实现计算的方式有多种,可以直接构造公式计算,也可以利用内置线性代数函数计算,还可以利用scipy库计算。 1.曼哈顿距离 也叫城市…...
开发运营监控
DevOps 监控使管理员能够实时了解生产环境中的元素,并有助于确保应用程序平稳运行,同时提供最高的业务价值,对于采用 DevOps 文化和方法的公司来说,这一点至关重要。 什么是开发运营监控 DevOps 通过持续开发、集成、测试、监控…...
食品小程序的制作教程
在今天的互联网时代,小程序已经成为了各行业推广和销售的重要途径。特别是对于食品行业来说,拥有一个专属的小程序商城可以带来更多的用户和销售机会。那么,如何制作一个完美的食品小程序呢?下面就跟随我来一步步教你,…...
Kubernetes(K8s)从入门到精通系列之十三:软件负载平衡选项
Kubernetes K8s从入门到精通系列之十三:软件负载平衡选项 一、软件负载平衡选项二、keepalived and haproxy三、keepalived配置四、haproxy配置五、选项 1:在操作系统上运行服务六、选项 2:将服务作为静态 Pod 运行 一、软件负载平衡选项 当…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
