docker+redis哨兵模式(一主二从三哨兵)- docker-compose

news2024/12/28 1:51:55

一、docker-compose 安装:

sudo apt-get update
 
#安装最新的docke-ce
sudo apt-get install  docker-ce
 
# 下载最新的docker-compose
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
 
# 修改docker-compose 权限
chmod +x /usr/local/bin/docker-compose

# 查看docker-compose 版本

docker-compose -v

二、部署
1 获取 redis 镜像
安装命令:docker pull redis:5.0.14

# 查询docker远程仓库

docker search redis

# docker拉取远程镜像

docker pull redis

# 查看镜像

docker images

# 查看容器

docker ps -a 

2 建目录
命令1:mkdir /usr/local/etc/redis
命令2:mkdir /usr/local/etc/redis/sentinel

3 在 /usr/local/etc/redis 目录下,新建 docker-compose.yml文件

version: '3'
services:
  master:
    image: redis
    container_name: redis-master
    command: redis-server
    ports:
      - 6379:6379
  slave1:
    image: redis
    container_name: redis-slave1
    ports:
      - 6380:6380
    command:  redis-server --slaveof redis-master 6379
  slave2:
    image: redis
    container_name: redis-slave2
    ports:
      - 6381:6381
    command: redis-server --slaveof redis-master 6379
 

4 启动 redis 集群
在./redis目录运行命令:
命令:docker-compose up -d

在这里插入图片描述

 

5 查看 redis-master 节点的 docker-ip 和 network name,见下图,并记住,待配置sentinel的docker-compose文件时用。

命令:docker inspect redis-master

在这里插入图片描述

 

6 在 /usr/local/etc/redis/sentinel 目录下,新建 docker-compose.yml文件

version: '3'
services:
  sentinel1:
    image: redis
    container_name: redis-sentinel1
    ports:
      - 26379:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel/sentinel1.conf
    volumes:
      - ./sentinel1.conf:/usr/local/etc/redis/sentinel/sentinel1.conf
  sentinel2:
    image: redis
    container_name: redis-sentinel2
    ports:
    - 26380:26380
    command: redis-sentinel /usr/local/etc/redis/sentinel/sentinel2.conf
    volumes:
      - ./sentinel2.conf:/usr/local/etc/redis/sentinel/sentinel2.conf
  sentinel3:
    image: redis
    container_name: redis-sentinel3
    ports:
      - 26381:26381
    command: redis-sentinel /usr/local/etc/redis/sentinel/sentinel3.conf
    volumes:
      - ./sentinel3.conf:/usr/local/etc/redis/sentinel/sentinel3.conf
networks:
  default:
    external:
      name: redis_default
 

7 下载sentinel.conf

wget https://download.redis.io/redis-stable/sentinel.conf

将sentinel.conf文件拷贝至/usr/local/etc/redis/sentinel,并复制三份,名称分别为sentinel1.conf 、 sentinel2.conf 、 sentinel3.conf,分别修改三个文件:

修改的内容如下:
修改 sentinel1.conf
文件修改内容如下:
protected-mode no
daemonize yes
port 26379 #sentinel 端口
sentinel monitor mymaster 172.18.0.3 6379 2 #注:172.18.0.3为redis-master的dockerIP

然后修改sentinel2.conf信息如下:
protected-mode no
daemonize yes
port 26380 # sentinel 端口,因为我们在一台虚拟机上,所以端口要不一样
sentinel monitor mymaster 172.18.0.3 6379 2 #注:172.18.0.3为redis-master的dockerIP

然后修改sentinel3.conf信息如下:
protected-mode no
daemonize yes
port 26381 # sentinel 端口,因为我们在一台虚拟机上,所以端口要不一样
dir “/var/llib/redis”
sentinel monitor mymaster 172.18.0.3 6379 2 #注:172.18.0.3为redis-master的dockerIP

8 在./sentinel目录启动 sentinel 集群

命令:docker-compose up -d

在这里插入图片描述

经此8步,完成docker下的redis一主二从三哨兵模式。

三、验证方法
1 验证是否安装好
*检测容器命令:docker ps
看是否有以下6个容器。

在这里插入图片描述
*登录主机命令:
docker exec -it redis-master /bin/bash
redis-cli
info Replication
出现下面画面,证明redis主机安装成功。

 在这里插入图片描述

 

*登录从机redis-slave1及redis-slave2命令:

在这里插入图片描述

在这里插入图片描述 

 

*登录哨兵命令:
docker exec -it redis-sentinel1 /bin/bash
redis-cli -p 26379
info sentinel
如下图,则哨兵安装成功。

在这里插入图片描述
*查看哨兵sentinel日志:
命令:docker logs -f redis-sentinel1
如下图所示,也证明哨兵安装成功

 在这里插入图片描述

 

2 1验证主从机切换
*停掉主机redis-master服务,可以直接将容器关掉。
命令:docker stop redis-master

在这里插入图片描述

 

*登录从机1(slave1)
命令:
docker exec -it redis-slave1 /bin/bash
redis-cli
info Replication
发现从机变为主机,如下图:

在这里插入图片描述

 

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

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

相关文章

面试字节,过关斩将直接干到 3 面,结果被吊打了?

人人都有大厂梦,对于软件测试员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让…

网络通信概述 -了解网络编程,什么是ip和端口,url

网络:网络就是一种辅助双方或者多方能够连接到一起的工具。 左:单机游戏(无网络) 右:网络游戏 网络编程:网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。…

一名8年测试工程师,因为偷偷接私活被····

接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后…

【WAF绕过】姿势总结(一)

【WAF绕过】姿势总结(一) 方法 Payload 编码 1、进行url编码(少数waf不会进行URL解码,部分waf进行一次url解码>可对payload进行二次url编码) 2、Unicode编码:单引号 %u0027、%u02b9、%u02bc 3、部分十六进制编…

Python可视化神器Seaborn入门系列——kdeplot

Seaborn是基于matplotlib的Python可视化库。 它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。但应强调的是,应该…

ChatGPT 火爆全球,我们能抓住的下一个风口在哪?

中国互联网行业正面临着巨大的压力和挑战,但也孕育着新的发展机遇。当下正值ChatGPT火爆,整个互联网行业充满了机遇和挑战,身处其中的我们能抓住什么呢? 思你所思,帮大家整理出了五大风口!希望对大家有所帮…

html SpeechSynthesis文字转语音

web 页面使用speechSynthesis实现文字转语音 网页语音 API 的SpeechSynthesis 接口是语音服务的控制接口;它可以用于获取设备上关于可用的合成声音的信息,开始、暂停语音,或除此之外的其他命令。 属性 SpeechSynthesis 也从它的父接口继承属…

腾讯云服务器选择购买流程(一步步详细配置)

腾讯云服务器购买流程直接在官方活动上选择比较合适,在云服务器CVM或轻量应用服务器页面自定义购买费用比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动机,选择范围窄,但是云服…

数据结构 -- 队列

1、Queue队列 先进先出 2、双端队列 --- Deque Deque的实现类是LinkedList,ArrayDeque,LinkedBlockingDeque。 ArrayDeque底层实现是数组,LinkedList底层实现是链表。 双端队列可以作为普通队列使用,也可以作为栈使用。Java官方推荐使用Deque替代Stac…

【flask + sqlalchemy】连接clickhouse数据库的踩的坑,在这里记录一下

文章目录 前言1. 发现问题2. 复盘2.1 上面试一次错误的问题记录2.2 flask使用clickhouse2.2.1 配置2.2.2 orm2.3 如何插入数据 前言 使用clickhouse有一段时间了,现在要重构一个项目,重度依赖clickhouse,现在终于理顺了,记录一下…

数据库管理-第七十七期 再探分布式(20230523)

数据库管理 2023-05-23 第七十七期 再探分布式1 单机分布式2 分布式改造3 尝试改造一个订单系统3.1 表类型和分片键选择3.2 扩展分片3.3 业务扩展 总结 第七十七期 再探分布式 上一次系统探讨分布式数据库还是在第三十六期,经过大半年的“进步”加上中间参加了不少…

Linux启动过程的问题解决

文章目录 Linux启动过程的问题解决忘记root密码的解决因文件系统错误而无法启动 Linux启动过程的问题解决 当我们在使用Linux时,可能会因为某些设置或突然断电等原因导致文件系统出现错误,从而导致Linux无法正常启动。但这并不意味着我们需要重新安装系…

ASEMI代理长电可控硅MAC97A8图片,MAC97A8大小

编辑-Z 长电可控硅MAC97A8参数: 型号:MAC97A8 VDRM/VRRM:600V IT(RMS):1A ITSM:8A 栅极电流(峰值):1A 栅极电压(峰值):5V 栅极功率&#…

翼辉+飞腾全国产实时操作系统与全国产主板工控方案在电力产品的应用

SylixOS(MS-RTOS)电力产品应用简介 一、电网传统装置: 继电保护、测控、稳控、PMU、时间同步、故障录波等装置(输变电) 一般使用AMP方案,少数客户使用SMP方案。2019年11月使用SylixOS的国内首台100%全国…

centos8 安装mysql8

1、下载mysql8软件库 wget https://repo.mysql.com//mysql80-community-release-el8-3.noarch.rpm 2、安装软件库 rpm -ivh mysql80-community-release-el8-3.noarch.rpm 3、安装mysql yum install mysql-server 4、启动mysql systemctl start mysqld systemctl enable…

【非集中申请期】国家自然科学基金最新申请指南情况汇总

2023年国自然集中申请期函评季临近尾声。当下,申请人除了在日常的科研工作中也要合理、及时的关注一些非集中申请期的项目动态,恰如2023年各类非集中期申请项目指南正在陆续发布中,这些仍然是非常好的申请机会。近期的项目指南名称与申请截止…

快速上手MATLAB:科研、工程、数据分析,MATLAB入门(下)教你基础知识!分享《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》

快速上手MATLAB:科研、工程、数据分析,MATLAB入门(上)教你基础知识! 福利:文末有资料分享!!前言一、文件读取1. 工作空间数据读取2. 文本文件读取3. 常用的数据导入和导出函数4. 图像…

不吹不黑,安利5个网工必备工具包

大家好,我是老杨。 要说网工的好用工具,你心里肯定有不少选项。工具常用常新,与时俱进,但你的思维却不一定。 研究一个新工具,除了能提升你的工作效率,也能对你的认知有所开拓和提升。 所以,…

《程序员面试金典(第6版)》面试题 02.01. 移除重复节点(哈希映射,多指针暴力破解,链表)

题目描述 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 题目传输门:面试题 02.01. 移除重复节点 示例1: 输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]示例2: 输入:[1, 1, 1, 1, 2]输出:[1, 2]…

Hive---拉链表设计与实现

1 数据同步问题 Hive在实际工作中主要用于构建离线数据仓库,定期的从各种数据源中同步采集数据到Hive中,经过分层转换提供数据应用。比如每天需要从MySQL中同步最新的订单信息、用户信息、店铺信息等到数据仓库中,进行订单分析、用户分析。 …