docker-compose安装redis高可用哨兵集群(一主二从三哨兵)

news2025/3/9 21:54:59

以redis 7.0为例子

直接上代码

docker-compose.yaml

version: '3.3'
services:
  master:
    image: redis:7.0
    container_name: redis-master
    #restart: always
    command: redis-server --port 6379 --requirepass root  --appendonly yes --masterauth root --replica-announce-ip 192.168.2.168 --replica-announce-port 6379
    volumes:
      - ./data/master:/data
    ports:
      - 6379:6379
  slave1:  
    image: redis:7.0
    container_name: redis-slave-1
    #restart: always
    command: redis-server --slaveof 192.168.2.168 6379 --port 6379  --requirepass root --masterauth root  --appendonly yes --replica-announce-ip 192.168.2.168 --replica-announce-port 6380
    volumes:
      - ./data/slave1:/data
    ports:
      - 6380:6379
 
  slave2:
    image: redis:7.0
    container_name: redis-slave-2
    #restart: always
    command: redis-server --slaveof 192.168.2.168 6379 --port 6379  --requirepass root --masterauth root  --appendonly yes --replica-announce-ip 192.168.2.168 --replica-announce-port 6381
    volumes:
      - ./data/slave1:/data
    ports:
      - 6381:6379
 
  sentinel1:
    image: redis:7.0
    container_name: redis-sentinel-1
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    #restart: always
    ports:
      - 26379:26379
    volumes:
      - ./config/sentinel1.conf:/usr/local/etc/redis/sentinel.conf
 
  sentinel2:
    image: redis:7.0
    container_name: redis-sentinel-2
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    #restart: always
    ports:
      - 26380:26379
    volumes:
      - ./config/sentinel2.conf:/usr/local/etc/redis/sentinel.conf
 
  sentinel3:
    image: redis:7.0
    container_name: redis-sentinel-3
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    #restart: always
    ports:
      - 26381:26379
    volumes:
      - ./config/sentinel3.conf:/usr/local/etc/redis/sentinel.conf

ip

端口号说明
192.168.2.1686379
192.168.2.1686380从1
192.168.2.1686381从2
192.168.2.16826379哨兵1
192.168.2.16826380哨兵2
192.168.2.16826381哨兵3

sentinel1.conf

#sentinel1.conf
port 26379
dir /tmp
sentinel monitor mymaster 192.168.2.168 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster root
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
sentinel announce-ip 192.168.2.168
sentinel announce-port 26379

sentinel2.conf

#sentinel2.conf
port 26380
dir /tmp
sentinel monitor mymaster 192.168.2.168 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster root
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
sentinel announce-ip 192.168.2.168
sentinel announce-port 26380

sentinel3.conf

#sentinel3.conf
port 26381
dir /tmp
sentinel monitor mymaster 192.168.2.168 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster root
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
sentinel announce-ip 192.168.2.168
sentinel announce-port 26381

启动docker

docker-compose up -d

校验集群

 

 

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

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

相关文章

什么是 TCP 和 UDP?Java 中如何实现 TCP 和 UDP 协议

在计算机网络中,TCP(传输控制协议)和UDP(用户数据报协议)是两种最常用的传输层协议。它们都用于在网络上传输数据,但是它们之间有很多不同之处。本文将介绍TCP和UDP的基本概念,以及在Java中如何…

一、基础-4、MySQL启动和客户端连接

一、启动 方法一: 1、winR,输入services.msc,按回车 2、找到MySQL,右键-启动/停止 MySQL安装后,默认已启动。 方法二、 1、winR,输入cmd,打开命令行 2、输入启动与停止命令 二、客户端连接 …

港联证券-“肉签”频出!这周打新看TA们→

近期,新股市场有所回暖,“赚钱效应”随之提高。Choice数据显现,上星期8只新股的上市首日均匀涨幅为56%,呈逐周上涨态势。其中,赛维年代首日大涨115.11%,中一签约可赚1.2万元;昊帆生物、英华特、…

ShardingSphere项目实战集群环境准备

🚀 ShardingSphere 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜&…

React06-简单实战案例

一、计时器 1. 案例场景 计时器在很多网站中都有使用,以时分秒的格式展示当前时间,每秒刷新一次。 2. 案例展示 展示的时间将随着系统时间,每秒刷新一次。 3. 案例代码 import { useState, useEffect } from react;export default func…

golang中的【数组】相关知识点

目录 数组含义数组定义形式数组的声明初始化方式数组变量的类型 arr的特征数组的遍历遍历的用法二数组的值传递数组的引用&取地址 传送二维数组的相关操作定义二维数组初始化遍历 Golang是一种高效的编程语言,具有很多特性和优点,其中之一就是其对数…

查看服务器GPU使用情况,以及使用GPU的用户

查看服务器GPU使用情况,以及使用GPU的用户 1.查看gpu使用情况 nvidia-smi2.查看是谁在占用gpu ps -f -p PID例如 ps -f -p 1986875就可以看到是谁在用了

谷歌发布ALBERT V2和中文模型

2019年9月推出时,谷歌的ALBERT语言模型在GLUE、RACE和SQuAD 2.0等流行的自然语言理解(NLU)基准上取得了SOTA结果。谷歌现在发布了一个主要的V2 ALBERT更新和开源的中国ALBERT模型。 正如全名“A Lite BERT”所示,ALBERT是该公司B…

组件的状态

组件的状态 react hook出来之前,函数式组件是没有自己状态的。 ​ jsx 就和原生js编写差不多,所有就当作在定义类,在类方法中使用变量,就要通过this来调用。 ​ 主义要写在state中,数据驱动视图,我们想要修…

Vite 3.0 核心盘点与分析

自2021 年2月,Vite 2.0版本发布以来,Vite项目在的用户量方面发生了非常迅速的增长,很快达到了每周 100 万的npm下载量,成为npm下载量最高的几个项目之一。同时,Vite 的社区也越来越活跃,目前已经形成非常庞…

如何用手机实现三维可视化

三维可视化是一种强大的工具,可以将复杂的数据、概念或场景以直观、具体的形式展现出来。它将数据或模型转化成三维图像,使人们能够更清晰地理解和分析其中的关系和特征。三维可视化不仅可以用于科学研究和工程设计,还广泛应用于教育、娱乐和…

linux内核调试工具记录

Linux性能测试使用的工具在github网站可见,网址如下: slides: http://www.slideshare.net/brendangregg/linux-performance-analysis-new-tools-and-old-secrets video: https://www.usenix.org/conference/lisa14/conference-program/presentation/greg…

在线考试系统源码搭建:springboot+mybatis+mysql+vue

下载源码 在线考试 刷题小程序 题库答题小程序 : 适用机构场景:在线考试系统适用于企业考核、员工职评测、培训机构考证刷题等场景;用户端功能:顺序练习,真题模拟,我的错题,我的收藏、错题重练(答对自动移…

【Atcoder】 [ARC156C] Tree and LCS

题目链接 Luogu方向 Atcoder方向 题目解法 手玩几个小数据之后可以猜测最小的最大相似度一定为1 考虑构造:每次找到2个叶子,交换权值,然后删掉(最后如果剩下一个点权值不变) 证明: 首先可以证明最大的相…

【微服务实战之Docker容器】第三章-镜像仓库

系列文章目录 【微服务实战之Docker容器】第一章-下载及安装 文章目录 系列文章目录Docker镜像提交本地镜像发布到阿里云阿里云镜像下载到本地使用本地镜像发布到私有库 Docker镜像提交 docker commit提交容器副本使之成为一个新的镜像docker commit -m“提交的描述信息” -a…

2023年网络安全需把握十大趋势

过去的2022年,网络安全继续成为全社会的关注焦点。网络战在俄乌冲突中风头尽出;勒索攻击给企业造成的损失触目惊心;数据泄露事件愈发频繁、甚至威胁社会安全;供应链攻击无处不在……网络安全已经成为发展的先决条件。 2023年是贯…

【大模型】AutoDL 快速使用

网站:https://www.autodl.com/ BUY 性价比之选:NVIDIA RTX A5000 / 24GB PS:CUDA版本 -12.0 PS:Pytorch/2.0.0/3.8(ubuntu20.04)/11.8 Use Tips git clone 慢 学术资源加速 source /etc/network_turbo切换pip 阿里源

TCP文件传输功能

实现代码 tcp.h #ifndef _TCP_H_ #define _TCP_H_#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <strings.h> #include <…

链表的简单示意

链表的实质就是指针。存放下一个元素的地址。 typedef struct spy {char * name ;struct spy * next; }spy ,*p_spy;spy A {A,NULL}; spy B {B,NULL}; spy C {C,NULL};int main() {p_spy &A;A.next&B;//A是一个结构体变量&#xff0c;A.next是对这个结构体变量的引用。…

MySQL八股学习记录4事务的实现from小林coding

MySQL八股学习记录4事务的实现from小林coding 事务的概念与特性并行事务引发的问题脏读不可重复读幻读 MySQL的应对策略InnoDB引擎可重复读详解ReadView在MVCC中的工作方式两种隔离级别通过MVCC实现幻读被完全解决了吗 事务的概念与特性 概念:一个操作要么执行成功,要么回滚到…