使用Docker搭建Redis主从集群

文章目录

  • ☃️前言
  • ☃️搭建
    • ❄️❄️架构
    • ❄️❄️实例说明
    • ❄️❄️搭建第一个服务器上的两个实例
    • ❄️❄️搭建第二个服务器上的一个实例
  • ☃️开启主从
    • ❄️❄️改配置
    • ❄️❄️重启从节点
  • ☃️验证


在这里插入图片描述

☃️前言

单节点 Redis 的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。


☃️搭建

❄️❄️架构

我们搭建的主从集群结构如图:

在这里插入图片描述

本次演示共包含三个节点,一个主节点,两个从节点。

❄️❄️实例说明

这里我们会在两台服务器中开启3个 redis 实例,模拟主从集群,信息如下:
在这里插入图片描述

IPPORT角色
10.10.10.156380master
10.10.10.156381slave
10.10.10.656380slave

❄️❄️搭建第一个服务器上的两个实例

我们采用 Docker 搭建 Redis的实例.

进入第一个服务器,我们要在第一个服务器开启两个 Redis 实例 80 and 81,
首先 我们在第一个服务器的 /app 目录下 建立两个文件夹:

mkdir -p redis80/conf
mkdir -p redis81/conf
mkdir -p redis80/data
mkdir -p redis81/data

将下面的配置文件 放到 redis80/conf 下和 redis81/conf
redis.conf

# 开启密码验证(可选)
requirepass 123456# 允许redis外地连接,需要注释掉绑定的IP
# bind 127.0.0.1# 关闭保护模式(可选)
protected-mode no# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
daemonize no# 开启RDB
# save ""
save 3600 1
save 300 100
save 60 10000# 关闭AOF
appendonly no# 这些设置将在 AOF 文件大小增长到一定百分比(auto-aof-rewrite-percentage)和最小大小(auto-aof-rewrite-min-size)时触发 AOF 重写。
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 16mb

效果如下图所示:
在这里插入图片描述

在这里插入图片描述

创建服务80:
注意 在启动服务前确保有对应的 镜像.

docker run -d -p 6380:6379 --name redis80 \--privileged=true \--restart=always \-v /app/redis80/config/redis.conf:/etc/redis/redis.conf \-v /app/redis80/data:/data \redis:6.0.8 \redis-server /etc/redis/redis.conf

验证:
在这里插入图片描述

创建服务81同上

docker run -d -p 6381:6379 --name redis81 \--privileged=true \--restart=always \-v /app/redis81/config/redis.conf:/etc/redis/redis.conf \-v /app/redis81/data:/data \redis:6.0.8 \redis-server /etc/redis/redis.conf

在这里插入图片描述


❄️❄️搭建第二个服务器上的一个实例

如法炮制

在这里插入图片描述

至此 两台服务器上的3个独立的实例均启动成功.


☃️开启主从

现在三个实例还没有任何关系,要配置主从可以使用replicaof 或者slaveof(5.0以前)命令。

有临时和永久两种模式:

  • 修改配置文件(永久生效)

    • 在redis.conf中添加一行配置:slaveof <masterip> <masterport>
  • 使用redis-cli客户端连接到redis服务,执行slaveof命令(重启后失效):

    slaveof <masterip> <masterport>
    

注意:在5.0以后新增命令replicaof,与salveof效果一致。


为了接近实战,我们使用改配置文件的方式来操作:

在这里插入图片描述

❄️❄️改配置

  • 更改第一台服务器的 redis81 的配置文件:
# 开启主从模式 配置主节点信息
slaveof 10.10.10.15 6380# 主节点有密码验证的话加上下面的配置
masterauth 123456
  • 更改第二台服务器的 redis80 的配置文件:
# 开启主从模式 配置主节点信息
slaveof 10.10.10.15 6380# 主节点有密码验证的话加上下面的配置
masterauth 123456

在这里插入图片描述

❄️❄️重启从节点

用 docker 命令重启从节点

重启后 命令行进入主节点 执行 info replication
显示如下说明主从OK
在这里插入图片描述

再进入任意一从节点 执行 info replication:

在这里插入图片描述


☃️验证

在主节点存消息

set msg 我是主节点

在这里插入图片描述

在从节点取消息

get msg

在这里插入图片描述

在从节点存消息
在这里插入图片描述
可以看到我们的主从架构, 是只支持在主接点写消息的, 从节点不可以写消息.

用Docker搭建Redis主从集群,到这里就完了.


在这里插入图片描述



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

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

相关文章

了解监控易(33):工单管理

在复杂的IT运维环境中&#xff0c;高效、规范地处理各种事务请求至关重要。监控易的工单管理功能&#xff0c;作为一款轻量化的运维协同工具&#xff0c;为团队提供了一个集中化、标准化的平台&#xff0c;以创建、接单、转交、挂起和重启工单&#xff0c;从而确保客户设备故障…

搜维尔科技:SenseGlove 的 Nova 被用于组装卫星接收器的虚拟现实培训项目中

SenseGlove 的 Nova 被用于组装卫星接收器的虚拟现实培训项目中 搜维尔科技&#xff1a;SenseGlove 的 Nova 被用于组装卫星接收器的虚拟现实培训项目中 得益于 SenseGlove 的力反馈专利&#xff0c;学员可以感受到他们正在组装的零件的形状、尺寸和密度。学员可以通过运动跟踪…

[大模型]TransNormerLLM-7B FastApi 部署调用

TransNormerLLM-7B FastApi 部署调用 1. TransNormer 介绍 TransNormerLLM 是一个基于线性注意力的 LLM&#xff0c;在准确性和效率方面均优于传统的基于 softmax 注意力的模型。它是在包含多达1.4 万亿个令牌的高质量语料库上进行训练的&#xff0c;TransNormerLLM 从之前的…

K-means和DBSCAN

目录 一、K-means和DBSCAN之间的主要区别 二、DBSCAN聚类算法 2.1DBSCAN聚类算法实现点集数据的聚类 2.2DBSCAN聚类算法实现鸢尾花数据集的聚类 三、K-means聚类算法 3.1K-means聚类算法实现随机数据的聚类 3.2K-means聚类算法实现鸢尾花数据集的聚类 一、K-means和DBSC…

014Node.js时间格式包silly-datetime安装与使用

下载&#xff1a; https://www.npmjs.com/网站上下载silly-datetime 安装 npm i silly-datetime --save var sd require(silly-datetime);console.log(new Date()); //2024-04-18T04:40:38.505Zvar dsd.format(new Date(), YYYY-MM-DD HH:mm);console.log(d); //2024…

未加权的相位解包裹算法DCT-0基础入门(含matlab代码和详细教程解析)

后面会更新c++ 的代码 ! phi = phase_unwrap(psi, weight) % get the wrapped differences of the wrapped valuesdx = [zeros([size(psi,1),1]), wrapToPi(diff(psi, 1, 2)), zeros([size(psi,1),1])];dy = [zeros([1,size(psi,2)]); wrapToPi(diff(psi, 1, 1)); zeros([1,s…

idea在controller或者service使用ctrl+alt+b进入方法后,如何返回到 进入前的那一层

idea在controller或者service使用ctrlaltb进入方法后&#xff0c;如何返回到进入方法的最外层 解决方案使用 ctrlalt ← /→← /→ 键盘上的左右键盘

jQuery 选择器有几种,分别是什么

jQuery选择器是用于“选择”&#xff08;或查找&#xff09;HTML元素的强大工具。jQuery选择器基于元素的名称、ID、类、类型、属性等进行选择。以下是jQuery选择器的几种主要类型&#xff0c;以及它们的详细代码示例&#xff1a; 基本选择器&#xff1a; 元素选择器&#xff1…

2024.4.20力扣每日一题——组合总和

2024.4.20 题目来源我的题解方法一 回溯 题目来源 力扣每日一题&#xff1b;题序&#xff1a;39 我的题解 方法一 回溯 以每一个位置开始深搜&#xff0c;直到target等于0或者小于0或者遍历完结束。 关键在于&#xff1a;注意去重 巧妙方法&#xff1a;传入一个index&#x…

stm32中断发送接收数据

配置hal库 1配置时钟 2配置uart 3打开中断 程序结构 uart中断函数 中断接收和发送函数 HAL_UART_Receive_IT()&#xff1a;启动中断驱动的接收过程&#xff0c;当接收到指定数量的字节后会产生中断&#xff0c;并调用HAL_UART_RxCpltCallback()回调函数。 HAL_StatusTypeD…

Qt : 如何解决重载引起的歧义

一、引子 在Qt中编写代码&#xff0c;进行信号和槽函数的连接时&#xff0c;如果采用新的语法&#xff0c;如&#xff1a; connect(ui->doubleSpinBox, &QDoubleSpinBox::valueChanged,this,&App::minValueChanged);当你准备快乐编译时&#xff0c;突然被背刺。卧槽…

【Redis(6)】Redis集群模式配置示例

Redis的三种高可用方案对比参考上一篇博客&#xff1a;深入理解Redis三种高可用方案&#xff0c;以做出明智的选择&#xff0c;下面要探讨的是三种方案其中的一种。 在构建高性能缓存系统时&#xff0c;Redis以其卓越的速度和灵活性成为首选。然而&#xff0c;传统的哨兵模式和…

STL分解

效果图 ref&#xff1a;时序数据分析的利器——STL分解 - 知乎 (zhihu.com)

2024化工制造企业数字化白皮书

来源&#xff1a;蓝凌研究院 中国石油和化学工业联合会发布2023年中国石油和化工行业经济运行情况。数据显示&#xff0c;2023年&#xff0c;我国石化行业实现营业收入15.95万亿元&#xff0c; 同比下降1.1%&#xff0c;利润总额8733.6亿元&#xff0c;行业经济运行总体呈现低…

2024蓝桥杯每日一题(数学期望)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一&#xff1a;收集卡牌 试题二&#xff1a;爬树的甲壳虫 试题三&#xff1a;绿豆蛙的归宿 试题四&#xff1a;扑克牌 试题一&#xff1a;收集卡牌 【题目描述】 小林在玩一个抽卡游戏&#xff0c;其…

MySQL-笔记-06.数据高级查询

目录 6.1 连接查询 6.1.1 交叉连接&#xff08;cross join&#xff09; 6.1.2 内连接&#xff08;inner join&#xff09; 6.1.3 外连接&#xff08;outer join&#xff09; 6.1.3.1 左外连接&#xff08;left [outer] join&#xff09; 6.1.3.2 右外连接&#xff08;rig…

LeetCode 1378、1277、2944

1378 二级排序&#xff0c;compare函数必须是static的 class Solution { public:struct node {int val;int priority;};static bool compare(const node &n1, const node &n2) {if (n1.priority n2.priority) {return n1.val < n2.val;}return n1.priority < n…

VSCode 目录折叠展开、缩进深度设置

1、VSCode 目录折叠展开设置 运行 Visual Studio Code &#xff0c;按 Ctrl &#xff0c;打开设置 输入Explorer:Compact Folders&#xff0c;取消勾选 或者在设置文件上添加 "explorer.compactFolders": false2、VSCode 目录缩进深度设置 输入Workbench Tree:…

【C# 数据结构-队列】

在C#中&#xff0c;队列&#xff08;Queue&#xff09;是一种先进先出&#xff08;First In First Out&#xff0c;FIFO&#xff09;的数据结构&#xff0c;允许添加&#xff08;Enqueue&#xff09;和移除&#xff08;Dequeue&#xff09;元素。队列类在.NET Framework的Syste…

Navicat Premium 16最新版激活 mac/win

Navicat Premium 16 for Mac是一款专业的多连接数据库管理工具。它支持连接多种类型的数据库&#xff0c;包括MySQL、MongoDB、Oracle、SQLite、SQL Server、PostgreSQL等&#xff0c;可以同时连接多种数据库&#xff0c;帮助用户轻松地管理和迁移数据。 Navicat Premium 16 fo…