当前位置: 首页 > news >正文

阿里云环境下用docker搭建redis主从复制

redis主从复制可将主redis中的数据同步到从redis中,具有读写分离、容灾恢复、数据备份、支持高并发等特性。

本文演示在阿里云环境下,用 docker 搭建 redis 主从复制(一主二从)的操作过程。

一、环境准备

阿里云安装CentOS7.9 64 位操作系统

二、主从redis配置文件

2.1 添加配置文件

在主机的 usr 目录下创建文件夹 redis,并创建三个配置文件:redis_master.conf、redis_slave81.conf、redis_slave82.conf

2.2 增加配置内容

主redis的端口设为 6388,两个从redis端口分别设置为6381/6382, 权限密码设置为 111111,具体内容(简化了其他配置参数)分别如下:

redis_master.conf:

# redis服务端口号

port 6388   

# redis 客户端登录密码
requirepass 111111

# 从redis连接主redis权限密码
masterauth 111111

 redis_slave81.conf:

# redis 服务端口

port 6381

# 挂载到主redis服务:IP + Port
replicaof 172.17.95.222 6388

# 访问主 redis 密码
masterauth 111111

 redis_slave82.conf

# redis 服务端口

port 6382

# 挂载到主redis服务:IP + Port
replicaof 172.17.95.222 6388

# 访问主 redis 密码
masterauth 111111

配置从redis时,主要设置两个参数:replicaof、masterauth

三、docker 创建主从 redis 服务

3.1 拉取最新 redis 镜像

docker pull redis

3.2 docker 运行主 redis 服务

docker run -v /usr/redis/redis_master.conf:/usr/redis/redis.conf -v /usr/redis/data:/data --privileged=true -p 6388:6388 --name redis_master -d redis redis-server /usr/redis/redis.conf

3.3 docker 运行从 redis 服务

redis配置文件映射到阿里云服务器的/usr/redis/目录下的对应配置文件(步骤二中的设置)

// 运行从redis 6381 
docker run -v /usr/redis/redis_slave81.conf:/usr/redis/redis.conf -v /usr/redis/data:/data --privileged=true -p 6381:6381 --name redis_slave81 -d redis redis-server /usr/redis/redis.conf// 运行从redis 6382
docker run -v /usr/redis/redis_slave82.conf:/usr/redis/redis.conf -v /usr/redis/data:/data --privileged=true -p 6382:6382 --name redis_slave82 -d redis redis-server /usr/redis/redis.conf

3.4 查看 docker 容器中的所有 redis 服务

3.5 查看主 redis 服务的运行效果

// 进入主redis
docker exec -it redis_master redis-cli -p 6388// 输入登录redis客户端密码
auth 111111// 查看主 redis 复制运行信息
info replication

显示结果:6388端口对应redis服务的角色是master,连接了 2 个 slave,端口分别是6381、6382。

3.6 查看从redis服务的运行效果

运行结果:6381端口对应的 redis 服务是角色是 slave,连接的 master 为 172.17.95.222::6388,连接状态为 up,即连接成功。

3.7 取消从服务器配置的命令

slaveof no one

四、测试效果

4.1 测试步骤

1、进入主 redis_master,开启redis客户端,新增key值

      set name gogo

2、分别进入从 redis_slave81 和 redis_slave82, 开启redis客户端,查看是否有name键值

      get name

4.2 验证结果

 

五、数据同步机制

5.1 完整同步

Redis master 服务器接收到 replicaof 命令后:
1、主服务器执行 bgsave,生成 rdb 文件,用缓冲区存储 bgsave后的所有写命令
2、Rdb 文件通过套接字传给从服务器
3、从服务器载入 rdb 文件

4、master将缓冲区命令传输给slave

 5.2 在线更新

Master 执行完命令后,将相同写命令发送给slave服务器执

5.3 部分同步

1、从服务器掉线,造成主从数据不一致,Redis master服务器会将每个执行命令记录到队列中

2、slave上线,master将缺失的命令发送slave,避免了完整同步

3、如果命令不存在,将进行完整同步。同步功能配置Replbacklog-size,默认 1M

相关文章:

阿里云环境下用docker搭建redis主从复制

redis主从复制可将主redis中的数据同步到从redis中,具有读写分离、容灾恢复、数据备份、支持高并发等特性。 本文演示在阿里云环境下,用 docker 搭建 redis 主从复制(一主二从)的操作过程。 一、环境准备 阿里云安装CentOS7.9 6…...

STM32 从0开始系统学习 1

笔者最近打算使用STM32系统的做一点东西。大二的时候就开始慢慢接触了STM32,拿他来做过一些事情,但是始终是葫芦吞枣,有点不扎实。笔者这里打算重新开始好好整理一下STM32的内容。 在这一笔记中很简单,就是解答一下啥是STM32&…...

python-numpy-笔记1

numpy官网NumPy User Guide 启动终端jupyter notebook 1.进入CMD输入jupyter notebook --enter--等待结束,使用Edge打开后出现jupyter的网页...

云+AI 时代的 OceanBase

2024 年 10 月 23 日,OceanBase 年度发布会在北京成功举办。会上,CEO 杨冰表示,OceanBase将继续践行一体化产品战略,不断演进产品能力,从支撑关键业务负载的OLTP能力,到实时分析的AP能力,再到应…...

【C++】vector使用详解

本篇我们来介绍STL的vector的内容。vector其实就是顺序表&#xff0c;vector的学习还是分为接口使用和模拟实现两大部分&#xff0c;本片就是介绍一下vector的使用。 1.vector的介绍及使用 vector文档介绍&#xff1a;vector - C Reference 在使用时需要加头文件#include <…...

.NET Core WebApi第5讲:接口传参实现、数据获取流程、204状态码问题

一、接口传参实现 1、引入&#xff1a;通过网址上两个参数mod...和FID....&#xff0c;区分开要的是哪个板块里面的数据​​​​​ 2、传参实现&#xff1a;在方法的参数处定义STRING字符串 &#xff08;1&#xff09;传1个参数 2>运行代码&#xff0c;在网页上输入以“点…...

运维面试汇总

Linux grep sed awk cut组合使用☆ http错误码和原因 长连接、短连接、WebSocket区别和使用场景 nginx性能优化有哪些方式☆ lvs、nginx、haproxy区别和使用场景☆ 僵尸进程是什么 进程、线程、协程区别☆ 什么是nginx的异步非阻塞 linux网络丢包怎么排查☆ 常用的性能…...

学习封装Flutter组件,看这篇就够了

Flutter 的自定义组件 一、添加 UI 组件 在进行自定义组件的封装之前&#xff0c;应该先掌握如何在 Flutter 应用页面中添加内置组件&#xff0c;如按钮和文本等&#xff0c;以下面的页面定义为例&#xff1a; import package:flutter/material.dart;class SecondPage exten…...

无线麦克风方案芯片DSH32F3024

直播跑道狂飙后&#xff0c;与其相配套的产品链也逐渐成形。其中麦克风的发展更是随着直播的火热而直线上升。无线麦克风以其便捷性、灵活性和高质量的音频传输能力&#xff0c;更受大家的青睐。今天我们就来说一下无线麦克风及对它起着至关重要的主控芯片的技术特点和性能解析…...

谷粒商城の秒杀服务

文章目录 前言一、秒杀系统的设计二、缓存预热1.缓存结构设计2、上架 三、秒杀业务实现 前言 本篇基于谷粒商城的秒杀服务&#xff0c;介绍设计一个秒杀系统的要素&#xff0c;包括缓存预热、商品随机码、动静分离、消息队列削峰等。对应视频P311-P325&#xff08;只介绍系统设…...

庆祝程序员节:聊一聊编程语言的演变

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…...

大模型技术在网络安全领域的应用与发展

一、概述 大模型技术&#xff0c;尤其是深度学习和自然语言处理领域的大型预训练模型&#xff0c;近年来在网络安全领域得到了广泛应用。这些模型通过其强大的数据处理能力和泛化能力&#xff0c;为网络安全带来了新的机遇和挑战。本文将对大模型技术在网络安全领域的应用进行…...

基于vite和vue3、 eslint、prettier、stylelint、husky规范

前言 在现代的前端开发中&#xff0c;代码规范非常重要。它可以提高团队的协作效率&#xff0c;减少代码错误&#xff0c;使代码更易于维护。为了实现代码规范化&#xff0c;我们可以使用一些工具来辅助我们的开发流程&#xff0c;包括eslint、prettier、stylelint、husky&am…...

git push到远程怎么回退

git push到远程服务器想继续修改&#xff0c;你必须要回退然后在此提交。而且需要保留本地的修改文件。 下面给你一些git命令&#xff0c;回退很简单。 按照下面的流程操作就行&#xff1a; 1.查看提交历史 首先&#xff0c;使用git log命令查看提交历史。可以使用以下命令显…...

Web保存状态的手段(Application的使用)

Application 在Java Web开发中&#xff0c;ServletContext&#xff08;通常称为application&#xff09;是一个非常重要的接口&#xff0c;它代表了Web应用程序的上下文。每个Web应用都有其自己的ServletContext&#xff0c;当Web应用被加载到Servlet容器时创建&#xff0c;并…...

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十二)拓展图优化库g2o(一)框架

【转载】理解图优化&#xff0c;一步步带你看懂g2o框架 文章来源&#xff1a;理解图优化&#xff0c;一步步带你看懂g2o框架 小白&#xff1a;师兄师兄&#xff0c;最近我在看SLAM的优化算法&#xff0c;有种方法叫“图优化”&#xff0c;以前学习算法的时候还有一个优化方法…...

Flutter Row组件实战案例

In this section, we’ll continue our exploration by combining the Row and Container widgets to create more complex layouts. Let’s dive in! 在本节中&#xff0c;我们将继续探索&#xff0c;结合“Row”和“Container”小部件来创建更复杂的布局。让我们开始吧! Sc…...

【ubuntu20.04】【ROS Noetic】【ROS安装】【Website may be down.】【gpg: 找不到有效的 OpenPGP 数据。】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、登入www.ros.org1.Setup your sources.list2.Set up your keys中间出了点问题 gpg: 找不到有效的 OpenPGP 数据。4.Installation下载安装ros5.环境参数的配…...

Python开发必备,这些黑科技库你get到了吗

大家好,今天我要为大家推荐一些非常强大和实用的Python库,相信无论是Python新手还是老司机,都能从中受益,提升你的Python开发技能。那就一起来看看吧! 1.Requests: 简单好用的HTTP请求库 第一个要介绍的是Requests库。它是Python中最流行的HTTP客户端库之一,大大简化了网络请…...

sublime text 常用快捷键

sublimetext常用快捷键 CtrlShiftP&#xff1a;打开命令面板 CtrlP&#xff1a;搜索项目中的文件 CtrlG&#xff1a;跳转到第几行 CtrlW&#xff1a;关闭当前打开文件 CtrlShiftW&#xff1a;关闭所有打开文件 CtrlShiftV&#xff1a;粘贴并格式化 CtrlD&#xff1a;选择单词&a…...

Kubernetes(K8S) + Harbor + Ingress 部署 SpringBoot + Vue 前后端分离项目

文章目录 1、环境准备2、搭建 K8S3、搭建 Harbor4、搭建 MySQL5、构建 SpringBoot 项目镜像6、构建 Vue.js 项目镜像7、部署项目7.1、配置 NameSpace7.2、配置 Deployment、Service7.3、配置 Ingress-Nginx7.4、访问测试 1、环境准备 本次整体项目部署使用的是阿里云ECS服务器…...

【iOS】知乎日报第一周总结

知乎日报第一周总结 文章目录 知乎日报第一周总结前言网络异步导致视图无法加载加载网络上的图片实现一个上拉刷新的效果左上角的时间初步实现了点击cell进入网页小结 前言 笔者在本周算是正式开始写项目了&#xff0c;本周主要是大致完成了主页的内容&#xff0c;大致完成了主…...

Springboot整合spring-boot-starter-data-elasticsearch

前言 <font style"color:rgb(36, 41, 47);">spring-boot-starter-data-elasticsearch</font> 是 Spring Boot 提供的一个起始依赖&#xff0c;旨在简化与 Elasticsearch 交互的开发过程。它集成了 Spring Data Elasticsearch&#xff0c;提供了一套完整…...

【大模型系列】mPLUG-Owl3(2024.08)

Paper: https://arxiv.org/pdf/2408.04840Github: https://github.com/X-PLUG/mPLUG-OwlHuggingFace&#xff1a;https://huggingface.co/mPLUG/mPLUG-Owl3-7B-240728Author: Jiabo Ye et al. 阿里巴巴 文章目录 0 总结(省流版)1 模型结构1.1 Cross-attention Based Achitectur…...

从0到1学习node.js(express模块)

文章目录 Express框架1、初体验express2、什么是路由3、路由的使用3、获取请求参数4、电商项目商品详情场景配置路由占位符规则5、小练习&#xff0c;根据id参数返回对应歌手信息6、express和原生http模块设置响应体的一些方法7、其他响应设置8、express中间件8.1、什么是中间件…...

MambaVision

核心速览 研究背景 研究问题 &#xff1a;这篇文章提出了一种新的混合Mamba-Transformer骨干网络&#xff0c;称为MambaVision&#xff0c;专为视 觉应用量身定制。研究的核心问题是如何有效地结合Mamba的状态空间模型&#xff08;SSM&#xff09;和Transf ormer的自注意力机制…...

MySQLDBA修炼之道-开发篇(二)

四、开发进阶 1. 范式和反范式 范式是数据库规范化的一个手段&#xff0c;是数据库设计中的一系列原理和技术&#xff0c;用于减少数据库中的数据冗余&#xff0c;并增进数据的一致性。 范式 1.1 第一范式 第一范式是指数据库表的每一列&#xff08;属性&#xff09;都是不可…...

前端必备的环境搭建

一、nvm安装详细教程&#xff08;安装nvm、node、npm、cnpm、yarn及环境变量配置&#xff09; 参考地址&#xff1a;nvm安装详细教程&#xff08;安装nvm、node、npm、cnpm、yarn及环境变量配置&#xff09;-CSDN博客 说明&#xff1a; 1&#xff09;关于nodejs目录不显示&a…...

SpringCloud笔记

什么是降级熔断&#xff1f;为什么要进行熔断&#xff1f; 熔断降级是一种分布式系统的保护机制&#xff0c;用于应对服务不稳定或不可用的情况。 熔断是指当某个服务的调用失败次数或异常比例达到一定阈值时&#xff0c;自动切断对该服务的调用&#xff0c;让请求快速失败&…...

优秀的程序员思考数据结构

原文地址&#xff1a;https://read.engineerscodex.com/p/good-programmers-worry-about-data 我最近在这篇很棒的 Stack Overflow 文章中看到了 Linus Torvalds&#xff08;Linux 和 Git 的创建者&#xff09;的一句话。&#xff08;这篇文章回顾了那篇文章中的许多引述。 它…...

html5网站开发论文/2022年大事热点新闻

当远程连接MySQL数据库的时候显示Can’t connect to MySQL server (10060)&#xff1b;解决办法&#xff1a; 关闭windows防火墙即可解决该问题&#xff1b;...

购物系统顺序图/北京谷歌seo公司

如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号“圆圆的算法笔记”,更多算法笔记、算法交流,以及世间万物的学习记录~ NLP中,预训练大模型Finetune是一种非常常见的解决问题的范式。利用在海量文本上预训练得到的Bert、GPT等模型,在下游不同任务上分别进行finet…...

百中搜网站建设/宁波seo网络推广多少钱

考研调剂公告各院校已经发布出来了&#xff0c;下面由出国留学网小编为你精心准备了“2020年成都信息工程大学统计学院考研调剂公告”&#xff0c;持续关注本站将可以持续获取更多的考试资讯!2020年成都信息工程大学统计学院考研调剂公告一、学院简况统计学院是学校办学历史悠久…...

答题网站怎么做/企业培训机构排名

一、队列的特点 先进先出&#xff0c;后进后出 二、使用类和数组封装单向队列 // 封装的栈数据类型 class Queue {// 私有属性#items [];// 弹出队列dequeue() {return this.#items.shift();}// 进入队列enqueue(data) {this.#items.push(data);}// 获取队列元素front() {/…...

涂料做哪个网站好/全网推广网站

三个月前刚毕业的时候&#xff0c;听到存储过程就头疼。写一个SQL存储过程&#xff0c;建立一个表USER 字段是姓名&#xff0c;年龄&#xff0c;职位&#xff0c;权限&#xff0c;然后向里面插入6条数据&#xff0c;然后查询出年龄大于18的所有信息。下面是答案&#xff1a;复制…...

做设计做网站/网站建设平台软件

材质图的主材质节点是所有添加到材质图中的材质表达式节点最终连接的位置。 主材质节点的输入所产生的结果将在材质编译后应用于游戏中的对象时展现。 在以下操作指南中&#xff0c;我们将阐述您使用主材质节点时需要了解的所有内容。 主材质节点 材质 是使用一种称为 高级着色…...