前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【redis】哨兵:docker搭建redis环境,容器的编排方式

【redis】哨兵:docker搭建redis环境,容器的编排方式

作者头像
椰椰椰耶
发布于 2025-03-26 05:59:31
发布于 2025-03-26 05:59:31
13300
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

环境搭建

我们搭建的结构:

  • 一个主节点
  • 两个从节点
  • 三个哨兵节点
image.png|344
image.png|344

按理说,这六个节点是要要六个不同的服务器主机上。此时我们只有一个服务器,我们就在一个服务器上,来完成这里的环境搭建

  • 在实际工作中,把上述节点放在一个服务器上,是没有意义的(一个服务器挂了,就全军覆没了)

由于这些节点,还挺多的,相互之间容易大家,依赖的端口号/配置文件/数据文件… 如果我们直接部署,就需要小心翼翼的去避免这些冲突

  • 类似于前面配置主从结构的方式
  • 这样比较繁琐,也会和在不同主机上部署,存在较大差异(很多冲突都不用考虑)

docker

是什么

虚拟机:通过软件,在电脑上模拟出另外的一些硬件(构造了另一个虚拟的电脑)

  • 虚拟机这样的软件,就可以使用一个计算机,来模拟出多个电脑的情况
  • 但是虚拟机有一个很大的问题,比较吃配置,这个事情对于低配的云服务器来说,压力山大

相比之下,使用 docker 就可以有效的解决上述问题。

docker 可以认为是一个“轻量级”的虚拟机,起到了虚拟机这样的隔离环境的效果,但是又没有吃很多的硬件资源。即使是配置比较拉胯的服务器,也能构造出好几个这样的虚拟的环境

  • 这也是后端开发这块非常流行的组件

准备工作

https://www.runoob.com/docker/macos-docker-install.html

  1. 先安装 dockerdocker-compose 检查是否安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker --version

docker-compose --version
  1. 停止之前的 redis 服务器

避免之后出现一些冲突

  1. 使用 docker 获取到 redis 的镜像

docker 中的“镜像”和“容器”类似于“可执行程序“和“进程“的关系

  • 容器可以看做一个轻量级的虚拟机。
  • 镜像,可以自己构建,也可以直接拿别人已经构建好的
    • docker hub(github) 包含了很多其他大佬们构建好的镜像,也提供了 redis 官方提供的镜像,可以直接拖下来使用

获取 redis 镜像的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull redis:5.0.9
  • git pull 使用 git 从中央仓库拉取代码
  • docker pull 使用 docker 从中央仓库(默认就是从 docker hub)来拉取镜像
  • redis:5.0.9 是镜像的版本

拉取到的镜像,里面包含一个精简的 Linux 操作系统,并且上面会安装 redis。只要直接基于这个镜像创建一个容器跑起来,此时,redis 服务器就搭建好了

image.png
image.png
  • 此时就搭建好了 docker 的镜像,大小为 92.9MB

随后我们就基于这个 docker 镜像,搭建 redis 哨兵环境

网络问题

如果遇到网络问题,就要换一下国内的镜像仓库,加速

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://dockerhub.azk8s.cn",
    "https://mirror.ccs.tencentyun.com",
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.1panel.live",
    "https://atomhub.openatom.cn/",
    "https://hub.uuuadc.top",
    "https://docker.anyhub.us.kg",
    "https://dockerhub.jobcher.com",
    "https://dockerhub.icu",
    "https://docker.ckyl.me",
    "https://docker.awsl9527.cn"
  ]

}

容器编排

此处我们直接用 docker-compose 来进行容器编排

  • 此处我们涉及到的多个 redis server,也有多个 redis 哨兵节点,每一个 redis server 或者每一个 redis 哨兵节点都是作为一个单独的容器了
  • 此处就有 6 个容器了,如果一个一个用 docker 手动创建容器,就比较麻烦,相比来说是用“容器编排”的方式就比较合理

容器编排就是,通过一个配置文件,把具体要创建哪些容器,每个容器运行的各种参数描述清楚。后续通过一个简单的命令,就能够批量的启动/停止这些容器了

  • 使用 yml 这样的格式来作为配置文件

文件格式

经典的配置文件格式:xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<student>
	<id>1</id>
	<name>张三</name>
	<age>18</age>
</student>
  • <> 成对出现的,就叫做标签
  • html 中的标签,都是标准规定的
  • xml 里面的标签都是自定义的
    • 写起来特别啰嗦,并且也比较占用空间

后来又有了 JSON

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
	id: 1,
	name: '张三',
	age: 18
}

yml 格式和 json 有一些相似之处,yml 虽然没有 json 这么火,但是还是挺广泛的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
student:
	id: 1
	name: "张三"
	age: 18
  • 它和 json 都是这种比较直观的键值对结构,json 是使用 {} 来表示层级结构,yml 则是使用缩进来表示

yml 相对于 json 的优势:对于格式要求更严格,可读性会更好,更有助于人来理解

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
容器化的LNMP环境,如何升级PHP到8.1.9
提到docker你可能会想到k8s,想到分布式,想到高并发;那单机服务器,或者开发环境有没有必要上docker呢?我觉得有!以LNMP环境为例
崔哥
2022/09/22
1.3K0
Docker入门
目前我已经拥有了2台linux服务器,后续为了项目之间的隔离以及软件的快速部署和应用,docker不可或缺.
打铁读书郎
2024/04/11
1480
利用 Docker 快速实现 MySQL binlog 主从备份
binlog 是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句(不包括 SELECT),可以在配置文件开启,也可以在 MySQL 客户端开启. 可以在客户端键入show plugins; 查看 binlog 是否已安装开启( Active )
FesonX
2020/03/01
1.5K0
利用 Docker 快速实现 MySQL binlog 主从备份
【学习笔记】Docker学习笔记
Docker 安装 # 1、yum 包更新到最新 yum update # 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-mapper-persistent-data lvm2 # 3、 设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docke
Karos
2023/02/02
1.2K0
【学习笔记】Docker学习笔记
手把手教你制作漏洞复现环境
在学习的过程中, 是否看到别人搭建的 Exploit 练习平台心痒痒呢? 通过本篇教程的学习, 将手把手教你搭建属于自己的漏洞测试利用环境, 不管是自己学习还有分享给小伙伴都将轻而易举. Ps: 这是
信安之路
2018/08/08
2.1K0
手把手教你制作漏洞复现环境
docker(完结)
部署Redis集群 # 创建网卡 docker network create redis --subnet 172.38.0.0/16 # 通过脚本创建六个redis配置 for port in $(
崔笑颜
2020/11/03
2830
docker(完结)
都9102年了,还不会Docker?10分钟带你从入门操作到实战上手
Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windows10目前也原生支持,Win10前需要内置虚拟机),正所谓“一次打包,到处运行”。
Zack说码
2019/08/05
7630
都9102年了,还不会Docker?10分钟带你从入门操作到实战上手
【redis】哨兵相关知识超详解(覆盖面试考点)
Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务,需要⼈⼯进⾏主从切换,同时⼤量的客⼾端需要被通知切换到新的主节点上,对于上了⼀定规模的应⽤来说,这种⽅案是⽆法接受的,于是 Redis 从 2.8 开始提供了 Redis Sentinel(哨兵)加个来解决这个问题。本章主要内容如下:
椰椰椰耶
2025/03/28
1100
【redis】哨兵相关知识超详解(覆盖面试考点)
Docker 及 Docker Compose 安装指南
Docker 是一个开源的容器化平台,可以帮助我们快速构建、打包和运行应用程序。而 Docker Compose 则是用于管理多个容器应用的工具,可以轻松定义和管理多个容器之间的关系。现在,让我们开始安装过程吧!
修己xj
2023/08/25
2.9K0
Docker 及 Docker Compose 安装指南
cursor重构谷粒商城05——docker容器化技术快速入门【番外篇】
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
半旧518
2025/01/23
1680
cursor重构谷粒商城05——docker容器化技术快速入门【番外篇】
使用docker来编排Web应用
使用docker可以轻松构建一个项目并运行,然而在真实的使用场景中,我们的项目并非是单一的,而是多个项目相互依赖组成一个web应用。
神奇的程序员
2023/11/20
5010
使用docker来编排Web应用
Docker的安装和Redis容器
Docker安装,环境:虚拟机CentOS 8;阿里云镜像加速;Redis容器创建。
徐建国
2021/08/03
5850
【Docker系列】我的Docker入门历程
最近打开公众号,看标题就知道就是【云原生】、【Kubernetes 工程师】、【云原生工程师】相关内容了,虽然...但是我还是会点开来看一看,毕竟我也想学习一下哈哈。这块技术主要有Kubernetes和Docker,Kubernetes我正在熟悉中,所以接下来我主要分享我学习Docker的内容。
用户9913368
2022/08/13
4470
Docker入门
Docker是容器技术的一个代表,容器的技术从本质上讲是程序打包、隔离的技术,不是一个很新的技术,核心的技术在内核中已经存在很久了。但容器技术被大众所用,变成这么流行,这么火爆的技术是因为Docker。Docker在13年被开源,变得越来越流行,Docker在微服务领域、云计算领域有着广泛的应用。这是为什么呢。任何技术的流行可能的原因有两点,一是能够解决大家的痛点,二是能够能够适应潮流.docker理顺了软件包的问题,有了docker运行一个镜像是非常容易的,不需要做各种环境的配置。
方志朋
2022/05/08
5430
Docker入门
Dockerfile 与 Compose 环境搭建学习笔记(一)
以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流行,越来越多的人在docker上运行自己的项目,利用docker也非常方便模拟各种线上集群,相比虚拟机效率会更高,不管是搭建还是运行。
大愚
2018/09/13
7550
Docker 入门指南
Docker是基于Go开发的应用容器引擎,属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
被水淹没
2023/02/25
2.1K0
Docker 入门指南
【Docker】Docker环境配置与常用命令
Docker 是一个开源的容器化平台,用于构建、发布和运行应用程序。通过使用容器技术,Docker 允许开发人员将应用程序及其依赖项打包为一个独立的、可移植的容器,以确保应用程序在不同环境中具有一致的运行行为。
DevFrank
2024/07/24
8700
【Docker】Docker环境配置与常用命令
Docker
通过dockerfile构建镜像: docker build -f dockerfile文件路径 -t 镜像名称:版本
六个周
2022/10/28
6080
Docker
安装Docker及简单使用方法
Docker 是一个开源的应用容器引擎,可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。并且容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
子润先生
2021/06/24
4310
【redis】哨兵:搭建主从/哨兵节点详解和细节
使用 docker-compose 一下,启动了 N 个容器,此时 N 个容器都处于同一个“局域网”中
椰椰椰耶
2025/03/26
1710
【redis】哨兵:搭建主从/哨兵节点详解和细节
相关推荐
容器化的LNMP环境,如何升级PHP到8.1.9
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档