Docker实现Redis主从,以及哨兵机制

news2024/10/6 22:19:16

Docker实现Redis主从,以及哨兵机制

目录

  • Docker实现Redis主从,以及哨兵机制
    • 准备Redis镜像
    • 创建Redis主节点配置文件
    • 启动Redis从节点
    • 确认主从连接
    • 哨兵主要功能
    • 配置哨兵文件
    • 创建Redis哨兵的Docker容器

要通过Docker实现Redis的主从(master-slave)复制,你可以通过运行多个Redis容器,并配置其中一个作为主节点(master),其余的作为从节点(slave)来实现。每个从节点都会复制主节点的数据。

以下是一个基本的步骤指南,展示如何使用Docker来设置Redis的主从复制:

准备Redis镜像

通过Docker Hub拉取官方的Redis镜像:

docker pull redis

创建Redis主节点配置文件

创建一个Redis配置文件(redis.conf),并在其中设置密码和其他配置。例如:

# redis.conf  
requirepass 0909  
# 其他配置...

然后,在启动Redis容器时使用这个配置文件,并命名为redis-master

docker run --name redis-master -d -p 6380:6379 -v /usr/local/etc/redis/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
  • 将宿主机的6380端口开放给主节点容器
  • 挂载宿主机的/usr/local/etc/redis/redis.conf作为Redis配置文件路径

注意:上面的命令假设你的Redis镜像使用/usr/local/etc/redis/redis.conf作为容器默认的配置文件路径。不同版本的Redis镜像可能会有略微区别

启动Redis从节点

创建从节点的配置文件redis-slave.conf,每个从节点都可以有各自的配置,我们将他和主节点放在同一目录下(/usr/local/etc/redis/)

# redis-slave.conf  
replicaof 10.0.4.11 6380  
masterauth 666  
# 其他配置...
  • replicaof:主节点的ip查看方式:

image-20240702184827391

然后,使用类似的命令启动从节点,但使用redis-slave.conf作为配置文件,名为redis-slave的从节点容器:

docker run --name redis-slave -d -p 6381:6379 -v /usr/local/etc/redis/redis-slave.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf

确认主从连接

进入主节点

exec -it 容器id /bin/bash

正常启动redis

image-20240702185349655

输入指令info,没有问题

image-20240702185433175

进入从节点

exec -it 容器id /bin/bash

正常启动redis

image-20240702185529150

输入指令info,主节点redis-master状态为up,没有问题

image-20240702185620947

主从配置成功

哨兵主要功能

  1. 监控(Monitoring)
    • 哨兵会定期检查Redis主从节点的健康状态。如果发现任何节点不可用,哨兵会记录这个状态并尝试解决问题。
  2. 通知(Notification)
    • 如果哨兵检测到Redis服务器出现问题(比如主节点宕机),它会通知系统管理员或其他应用程序,便于及时处理。
  3. 自动故障转移(Automatic Failover)
    • 当主节点出现故障时,哨兵会自动选举一个从节点作为新的主节点,并通知其他从节点和客户端更新连接信息。这确保了即使主节点出问题,系统仍能继续正常运行。
  4. 配置提供者(Configuration Provider)
    • 哨兵可以提供当前的Redis主从节点配置给客户端,使客户端能够自动连接到新的主节点。

配置哨兵文件

哨兵的配置通常在一个名为 sentinel.conf 的文件中

# sentinel监控的主节点  mymaster为自定义名称
# 2表示哨兵数量阈值。它表示在进行故障转移之前,必须有多少个哨兵节点认为主服务器已经不可达
sentinel monitor mymaster 127.0.0.1 6379 2  
  
# 如果master没有在30000毫秒内响应 PING,则认为master down  
sentinel down-after-milliseconds mymaster 30000  
  
# 如果 sentinel 在该配置指定的时间内未能成功地与足够数量的 sentinel 节点或 master 节点进行通信,  
# 那么它将停止对其进行故障转移操作  
sentinel failover-timeout mymaster 180000  
  
# 通知配置(可选)  
# sentinel notification-script mymaster /var/redis/notify-script.sh  
  
# 客户端重新配置脚本(可选)  
# 当 master 发生变化时,可以通过这个脚本来自动调整客户端配置  
# sentinel client-reconfig-script mymaster /var/redis/reconfig-script.sh

创建Redis哨兵的Docker容器

docker run --name sentinel-1 -d \  
  --volume /usr/etc/redis/sentinel.conf:/usr/local/etc/redis/sentinel.conf \  
  redis redis-sentinel /usr/local/etc/redis/sentinel.conf

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

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

相关文章

亚太万人eVTOL展!2024深圳eVTOL将于9月登陆鹏城

2024年以来,北京、上海等十多个省市,先后发布了鼓励低空经济发展的行动方案,其中,eVTOL(电动垂直起降航空器)成为低空经济最火热的细分赛道。2023年,中国eVTOL产业规模达9.8亿元,同比…

Cloud Kernel SIG 双月动态:ANCK 发布 4.19 6.6 新版本,存储、内存、调度等新特性支持

Cloud Kernel SIG(Special Interest Group):支撑龙蜥内核版本的研发、发布和服务,提供生产可用的高性价比内核产品。 本月度动态综合汇总了 5 月和 4 月双月项目动态: 01 SIG 整体进展 5 月 1. ANCK-6.6 release 6…

基于RAG(检索增强生成)实现一套企业智能客服系统

大型语言模型(LLM)相较于传统的语言模型具有更强大的能力,然而在某些情况下,它们仍可能无法提供准确的答案。为了解决大型语言模型在生成文本时面临的一系列挑战,提高模型的性能和输出质量,研究人员提出了一…

软件测试面试必杀篇:【2024软件测试面试八股文宝典】

800道软件测试面试真题,高清打印版打包带走,横扫软件测试面试高频问题,涵盖测试理论、Linux、MySQL、Web测试、接口测试、App测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

ssm三农产品助推网站-计算机毕业设计源码91990

目录 摘要 1 绪论 1.1选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2网站分析 2.1 可行性分析 2.2 网站流程分析 2.2.1 数据流程 2.2.2 业务流程 2.3 网站功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 网站用例分析 2.5本章小结 3 网站总体设…

怎么在线打开AI文件?推荐使用这款免费白板软件!

在我们的日常生活和工作中,AI文件的使用频率越来越高。但是,对于许多非设计从业者来说,如何打开AI文件仍然是一个经常遇到的问题。 别担心,免费的在线白板软件就是你的解决方案。这种工具不仅可以轻松打开AI文件,还可…

AI 与数据的智能融合丨大模型时代下的存储系统

WOT 全球技术创新大会2024北京站于 6 月 22 日圆满落幕。本届大会以“智启新纪,慧创万物”为主题,邀请到 60 位不同行业的专家,聚焦 AIGC、领导力、研发效能、架构演进、大数据等热门技术话题进行分享。 近年来,数据和人工智能已…

springboot+vue+mybatis前台点菜系统+PPT+论文+讲解+售后

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到…

【操作系统】进程管理——调度基础(个人笔记)

学习日期:2024.7.3 内容摘要:调度的概念、层次,进程调度的时机,调度器和闲逛进程,调度算法的评价指标 调度的基本概念 有一堆任务需要处理,但由于资源有限,有的事情不能同时处理,这…

virtualbox+Ubuntu部分窗口显示错乱

如下图: 窗口标题显示错乱,跟一般乱码不一样。 解决办法: 在virtualbox设置中,显示选项卡,取消勾选启用3D加速 也可参考此链接:linux ubuntu 中vscode中央窗口显示出现异常/显示错误_开发工具-CSDN问答

替换数据库是换肤还是换心?

上周末参加了自主可控数据库的沙龙。在会上我进行了主题演讲《围追堵截下,Oracle还能在国内立足么》 先听结论吧 我个人认为在很长一段时间还是你可以立足的。IDC最近公布的数据如下。本地部署中,Oracle居然是第一位的。这个数据是超出我想象的。去O都…

【机器学习】Datawhale-AI夏令营分子性质AI预测挑战赛

参赛链接:零基础入门 Ai 数据挖掘竞赛-速通 Baseline - 飞桨AI Studio星河社区 一、赛事背景 在当今科技日新月异的时代,人工智能(AI)技术正以前所未有的深度和广度渗透到科研领域,特别是在化学及药物研发中展现出了巨…

[我靠升级逆袭成为大师]韩漫日漫无删减完整版,免费在线观看漫画

[我靠升级逆袭成为大师]韩漫日漫无删减完整版,免费在线观看漫画 不能多说,怕审-核不过,自己看图吧。 目前统计【统计日期:2024-07-03】: 完结的有:420部。 连载的有:308部,持续更…

关于工时表软件,知道这四点就够了

在当今商业环境日益加快的节奏中,分秒必争。对于企业而言,了解内部时间的使用情况是确保效率、优化资源分配和提高生产力的关键。工时表在这里发挥着不可或缺的作用,它不仅是行政工作的组成部分,更是明确运营、加强项目管理和简化…

程序员的加油站,各类技术文章,可视化技术,在线源码资源,在线实用工具,数据爬虫接口持续集成更新中

先挂网址:https://wheart.cn 可视化大屏模板与设计,在线预览 上百例可视化模板 技术文章、资源下载等各类资源导航页 echart在线实用demo 各种在线工具提升开发效率 echart在线代码模板

Raylib 坐标系适应与GPU绘制参数

通过750 - 鼠标坐标&#xff0c;把原点在左上角的鼠标坐标变成左下角 实现输入数据后的坐标系同GPU原点在左下角坐标相同&#xff0c; 比数组0&#xff0c;0对应左上角好&#xff0c; 此时实际上数组0&#xff0c;0对应左下角 #include <raylib.h> // 感受&#xff1a…

8624 多项式系数累加和

这个问题可以通过使用数学的导数规则来解决。对于一个多项式&#xff0c;它的导数可以通过将每一项的系数乘以它的指数&#xff0c;然后降低该项的指数来得到。这个过程可以重复M次来得到多项式的M阶导数。然后&#xff0c;我们可以简单地将所有项的系数相加来得到结果。 以下…

Android Studio上传新项目到Gitee

一、在Gitee上创建仓库 首先需要再Gitee上创建仓库 1、在Gitee中新建仓库 2、输入仓库信息 3、生成仓库地址 创建成功会生成一个仓库地址&#xff0c;格式如下&#xff1a; https://gitee.com/test/compose_mvi_demo.git二、Android Studio 上传项目到Gitee 1、在Android …

GPT-4预测股票涨跌更更更准了!东京大学新框架LLMFactor提升显著 | ACL 2024

花一秒钟就看透事物本质的人&#xff0c;和花一辈子都看不清的人&#xff0c;注定是截然不同的命运。——唐柯里昂 除了少数天纵奇才&#xff0c;大多数人都是通过知识和阅历的不断积累&#xff0c;才逐渐锻炼出观察和判断事物变化规律的能力。而如果说有一件事&#xff0c;可以…

数据库系统概论 | MySQL | 数据定义 | 单表查询 | 嵌套查询 | 连接查询 | 带有谓词的查询

数据定义 模式的定义与删除 定义模式与删除模式&#xff1a; CREATE SCHEMA S_C_SC; DROP SCHEMA S_C_SC;进入模式&#xff1a; USE S_C_SC;建立学生表&#xff1a; CREATE TABLE Student (Sno CHAR(8) PRIMARY KEY, Sname VARCHAR(20) UNIQUE, Ssex CHAR(6), Sbirthdate …