基于DockerCompose搭建Redis主从哨兵模式
linux目录结构

内网配置
哨兵配置文件如下,创建3个哨兵配置文件
# sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下
protected-mode no
sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
docker-compose.yaml
version: '3'services:redis-master:image: redis:4.0.8container_name: redis-masterports:- "6379:6379"volumes:- redis-master-data:/datacommand: ["redis-server", "--appendonly", "yes"]redis-slave1:image: redis:4.0.8container_name: redis-slave1ports:- "6380:6379"volumes:- redis-slave1-data:/datacommand: ["redis-server", "--slaveof", "redis-master", "6379", "--appendonly", "yes"]depends_on:- redis-masterredis-slave2:image: redis:4.0.8container_name: redis-slave2ports:- "6381:6379"volumes:- redis-slave2-data:/datacommand: ["redis-server", "--slaveof", "redis-master", "6379", "--appendonly", "yes"]depends_on:- redis-masterredis-sentinel-1:image: redis:4.0.8container_name: redis-sentinel-1ports:- "26379:26379"volumes:- ./sentinel26379.conf:/usr/local/etc/redis/sentinel.confcommand: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]depends_on:- redis-master- redis-slave1- redis-slave2redis-sentinel-2:image: redis:4.0.8container_name: redis-sentinel-2ports:- "26380:26379"volumes:- ./sentinel26380.conf:/usr/local/etc/redis/sentinel.confcommand: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]depends_on:- redis-master- redis-slave1- redis-slave2redis-sentinel-3:image: redis:4.0.8container_name: redis-sentinel-3ports:- "26381:26379"volumes:- ./sentinel26381.conf:/usr/local/etc/redis/sentinel.confcommand: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]depends_on:- redis-master- redis-slave1- redis-slave2volumes:redis-master-data:redis-slave1-data:redis-slave2-data:
host版本
version: '3'services:redis-master:image: redis:4.0.8container_name: redis-masternetwork_mode: hostports:- "17000:17000"volumes:- redis-master-data:/datacommand: ["redis-server", "--appendonly", "yes","--port","17000"]redis-slave1:image: redis:4.0.8container_name: redis-slave1network_mode: hostports:- "17001:17001"volumes:- redis-slave1-data:/datacommand: ["redis-server", "--slaveof", "192.168.0.203", "17000", "--appendonly", "yes","--port","17001"]depends_on:- redis-masterredis-slave2:image: redis:4.0.8container_name: redis-slave2network_mode: hostports:- "17002:17002"volumes:- redis-slave2-data:/datacommand: ["redis-server", "--slaveof", "192.168.0.203", "17000", "--appendonly", "yes","--port","17002"]depends_on:- redis-masterredis-sentinel-1:image: redis:4.0.8container_name: redis-sentinel-1network_mode: hostports:- "16000:16000"volumes:- ./sentinel16000.conf:/usr/local/etc/redis/sentinel.confcommand: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]depends_on:- redis-master- redis-slave1- redis-slave2redis-sentinel-2:image: redis:4.0.8container_name: redis-sentinel-2network_mode: hostports:- "16001:16001"volumes:- ./sentinel16001.conf:/usr/local/etc/redis/sentinel.confcommand: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]depends_on:- redis-master- redis-slave1- redis-slave2redis-sentinel-3:image: redis:4.0.8container_name: redis-sentinel-3network_mode: hostports:- "16002:16002"volumes:- ./sentinel16002.conf:/usr/local/etc/redis/sentinel.confcommand: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]depends_on:- redis-master- redis-slave1- redis-slave2volumes:redis-master-data:redis-slave1-data:redis-slave2-data:
protected-mode no
sentinel myid d1ccb49b4c07533de9e7357402dcb79e2f4a4458
sentinel monitor mymaster 192.168.0.203 17000 2
sentinel down-after-milliseconds mymaster 60000
sentinel config-epoch mymaster 0
# Generated by CONFIG REWRITE
port 16000
dir "/data"
############################################################
protected-mode no
sentinel myid d1ccb49b4c07533de9e7357402dcb79e2f4a4458
sentinel monitor mymaster 192.168.0.203 17000 2
sentinel down-after-milliseconds mymaster 60000
sentinel config-epoch mymaster 0
# Generated by CONFIG REWRITE
port 16001
dir "/data"
############################################################
protected-mode no
sentinel myid d1ccb49b4c07533de9e7357402dcb79e2f4a4458
sentinel monitor mymaster 192.168.0.203 17000 2
sentinel down-after-milliseconds mymaster 60000
sentinel config-epoch mymaster 0
# Generated by CONFIG REWRITE
port 16002
dir "/data"
相关文章:
基于DockerCompose搭建Redis主从哨兵模式
linux目录结构 内网配置 哨兵配置文件如下,创建3个哨兵配置文件 # sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下 protected-mode no sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 60000 s…...
aioice里面candidate固定UDP端口测试
环境: aioice0.9.0 问题描述: aioice里面candidate固定UDP端口测试 解决方案: /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…...
Git使用教程-分支使用/合并分支提交
Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支(branch)的基本操作:二、查看分支:参考 一、分支(branch)的基本操作: git clone https://.git git status …...
单元测试使用记录
什么是单元测试 简单来说就是对一个类中的方法进行测试,对输出的结果检查判断是否符合预期结果 但是在多年的工作中,从来没有哪个项目中真正系统的用到了单元测试,因此对它还是很陌生的,也就造成更加不会在项目中区使用它。 如何…...
LabVIEW实时信号采集与频谱分析
系统通过LabVIEW与PXIe硬件结合,实现高精度模拟信号的实时采集、频谱分析与可视化显示。核心功能包括采样率配置、快速傅里叶变换(FFT)、功率谱图生成及动态缩放调整,同时支持信号平均与噪声抑制。系统设计灵活,适用于…...
OpenCV(python)从入门到精通——运算操作
加法减法操作 import cv2 as cv import numpy as npx np.uint8([250]) y np.uint8([10])x_1 np.uint8([10]) y_1 np.uint8([20])# 加法,相加最大只能为255 print(cv.add(x,y))# 减法,相互减最小值只能为0 print(cv.subtract(x_1,y_1))图像加法 import cv2 as…...
基础2:值类型与右值引用
1.函数返回 在讲解右值之前,要知道下面这个函数要进行几次拷贝以及为什么? int get_x() {int x 20;return x; }int aget_x(); 答案:两次 # 第一次 int tmpa; # 第二次 int xtmp;2.左值与右值 🍏2.1 能取地址操作的就是左值 …...
GitHub年度报告发布!Python首次超越JavaScript
全球开发者数量激增,GenAI 项目呈爆炸式增长趋势,推动编程语言的应用格局也发生了巨大变化,最新的 GitHub Octoverse 报告来了! 1、Python 首次超越 JavaScript,成为 GitHub 平台最顶级编程语言 不同于流传“AI 即将取…...
EdgeX Message Bus 消息总线
EdgeX Message Bus 消息总线 一、概述 EdgeX MessageBus 内部消息总线,用于 EdgeX 服务之间的内部通信。 EdgeX 服务是指来自 EdgeX 的任何核心/支持/应用程序/设备服务或使用 EdgeX SDK 构建的任何自定义应用程序或设备服务。 EdgeX MessageBus 用于内部 EdgeX 服务与服务之间…...
【JavaEE进阶】关于Maven
目录 🌴什么是Maven 🌲为什么要学Maven 🎍创建一个Maven项目 🎄Maven核心功能 🚩项目构建 🚩依赖管理 🎋Maven Help插件 🍀Maven 仓库 🚩本地仓库 Ὢ…...
YOLOv9-0.1部分代码阅读笔记-autoanchor.py
autoanchor.py utils\autoanchor.py 目录 autoanchor.py 1.所需的库和模块 2.def check_anchor_order(m): 3.def check_anchors(dataset, model, thr4.0, imgsz640): 4.def kmean_anchors(dataset./data/coco128.yaml, n9, img_size640, thr4.0, gen1000, verboseTrue…...
Electronjs+Vue如何开发PC桌面客户端(Windows,Mac,Linux)
electronjs官网 https://www.electronjs.org/zh/ Electron开发PC桌面客户端的技术选型非常适合已经有web前端开发人员的团队。能够很丝滑的过渡。 Electron是什么? Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.…...
谷歌浏览器 安装谷歌浏览器特定版本后禁止自动更新
问题描述 我们通过离线安装谷歌浏览器后,第一次打开浏览器时会默认下载最新版本,等到我们重启浏览器后它会自动更新。在项目中为了能固定浏览器版本,所以要禁止谷歌浏览器的更新,网上找了好多方法都没用,自己摸索出来…...
Linux计算时间差
Linux计算时间差 1、Linux计算时间差2、时间差的应用 1、Linux计算时间差 在Linux中,计算时间差通常是为了统计、监控或调试。时间差可以用来衡量任务执行的时间,或者两个事件之间的间隔。例如,响应时间、执行时间、定时任务与延时处理等 以…...
Python的3D可视化库【vedo】2-5 (plotter模块) 坐标转换、场景导出、添加控件
文章目录 4 Plotter类的方法4.7 屏幕和场景中的坐标点转换4.7.1 屏幕坐标转为世界坐标4.7.2 世界坐标转为屏幕坐标4.7.3 屏幕坐标取颜色 4.8 导出4.8.1 导出2D图片4.8.2 导出3D文件 4.9 添加控件4.9.1 添加内嵌子窗口4.9.2 添加选择区4.9.3 添加比例尺4.9.4 为对象添加弹出提示…...
【VUE】13、安装nrm管理多个npm源
nrm(npm registry manager)是一个 npm 源管理器,它允许用户快速地在不同的 npm 源之间进行切换,以提高包管理的速度和效率。以下是对 nrm 使用的详细介绍: 1、安装nrm 在使用 nrm 之前,需要先确保已经安装…...
【SQL/MySQL 如何使用三种触发器】SQL语句实例演示
触发器介绍 – 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只…...
Docker容器五种网络驱动模式详解
Docker 网络用于在容器之间以及容器与外部网络之间提供通信功能。它允许容器在隔离的网络环境中运行,同时也能根据需要与其他容器或外部网络进行交互。通过使用网络驱动,Docker 可以创建不同类型的网络,以满足各种应用场景的需求。 传统上&am…...
netfilter简介及流程图
Netfilter 是 Linux 内核中用于网络包过滤和操作的框架,由 Rusty Russell 于1998年创立,旨在改进旧的 ipchains 和 ipfwadm 实现。它采用模块化设计,具有良好可扩展性,并在2000年3月合并进Linux 2.3.x内核版本。 Netfilter的主要…...
Vue 前端代码规范
在 Vue 前端开发中,遵循代码规范可以提高代码的可读性、可维护性和团队协作效率。以下是一些详细的 Vue 前端代码规范,涵盖了多个方面: ### 1. **项目结构** - **目录结构**:- src/ 目录下应包含 components/、views/、store/、router/、ass…...
Mermaid图表绘制终极指南:用Markdown代码快速创建专业图表
Mermaid图表绘制终极指南:用Markdown代码快速创建专业图表 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和…...
AT32F403A基于V2库实现多通道ADC+DMA数据采集实战
1. 硬件准备与环境搭建 第一次接触AT32F403A开发板时,我对着官方文档研究了半天。这块板子最吸引我的地方是内置了ATLink-EZ调试器,省去了额外购买仿真器的麻烦。开发板采用AT32F403AVGT7芯片,核心资源丰富,特别适合做ADC多通道采…...
Restate监控与调试:如何利用内置工具实现应用全链路可观测性
Restate监控与调试:如何利用内置工具实现应用全链路可观测性 【免费下载链接】restate Restate is the platform for building resilient applications that tolerate all infrastructure faults w/o the need for a PhD. 项目地址: https://gitcode.com/gh_mirro…...
视觉定位模型Chord实战:基于Qwen2.5-VL,快速搭建多模态目标检测服务
视觉定位模型Chord实战:基于Qwen2.5-VL,快速搭建多模态目标检测服务 1. 项目概述 视觉定位技术正在改变我们与图像交互的方式。Chord模型基于Qwen2.5-VL多模态大模型,能够理解自然语言指令并在图像中精确定位目标对象。想象一下,…...
拒绝手动排版!用Word域代码+样式库打造自动化技术文档(含GitHub模板)
拒绝手动排版!用Word域代码样式库打造自动化技术文档(含GitHub模板) 技术文档工程师的日常往往被格式调整、编号校对这类重复劳动占据。我曾见过团队因为手动调整200页需求文档的标题格式,导致版本发布时间延误三天。其实&#x…...
突破Twitter数据限制:Rettiwt-API开源工具零成本数据获取指南
突破Twitter数据限制:Rettiwt-API开源工具零成本数据获取指南 【免费下载链接】Rettiwt-API An API for fetching data from Twitter for free! 项目地址: https://gitcode.com/gh_mirrors/re/Rettiwt-API 在社交媒体数据驱动决策的时代,Twitter作…...
iStore软件中心:OpenWRT插件管理解决方案与实战指南
iStore软件中心:OpenWRT插件管理解决方案与实战指南 【免费下载链接】istore 一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app s…...
原神抽卡数据分析工具:智能解析与可视化全攻略
原神抽卡数据分析工具:智能解析与可视化全攻略 【免费下载链接】genshin-wish-export biuuu/genshin-wish-export - 一个使用Electron制作的原神祈愿记录导出工具,它可以通过读取游戏日志或代理模式获取访问游戏祈愿记录API所需的authKey。 项目地址: …...
AIGlasses_for_navigation商业应用:社区养老中心盲道安全监测解决方案
AIGlasses_for_navigation商业应用:社区养老中心盲道安全监测解决方案 1. 项目背景与价值 社区养老中心作为老年人日常活动的重要场所,无障碍设施的安全性直接关系到老年人的出行安全。传统的盲道巡检主要依靠人工目视检查,存在效率低、覆盖…...
【Python 教程】如何将 JSON 数据转换为 Excel 工作表
pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...
