Redis主从复制(新)

news2024/11/15 16:39:58

        像一些大型的项目,为了保证系统的稳定性,会有一台Redis服务器专门作为主机(master),还会有多台服务器作为从机(slave)主机可专门用作写数据,然后根据配置和策略,自动将数据同步到从机,而从机专门用来读数据,从而实现了读写分离,也叫主从复制。

主从复制的作用有:

  • 读写分离,这样性能得到扩展。

  • 数据备份。

  • 容灾处理,恢复快速。

1.一主二仆

1.首先启动三台redis服务器:

 2.分别进入到客户端,可以通过info replication命令打印信息:

3.发现服务启动后,3台服务均默认为主机,我们要将6380和6381配置为从机,成为6379的从服务器。

4.在6380服务和6381服务上执行slaveof 127.0.0.1 6379命令即可,此时主机可以进行读写操作,而从机只能进行读操作。

注意

  • 如果主机6379挂掉,从机依然是从机,不会上位为主机,没有主机只是没有写操作。等到主机重启后,一切恢复如初。

  • 从机挂掉重启后又会成为一台"空"主机,就需要重新设置slaveof 127.0.0.1 6379

主机的数据是怎么同步到从机的?

一阶段——>如果现有一个从机突然连接到主机上时:

  • slaveof命令成功后证明从机连接成功,从机会向master主机发送一个同步命令。

  • master接收到同步命令之后,主机会自动触发进行数据持久化操作,同时将所有接收到的用于修改数据集命令缓存起来,持久化后主机将磁盘中的rdb文件发送到各从服务器,从服务器拿到rdb文件后本地磁盘保存并读取加载数据,此操作也称为全量复制

二阶段——>平常主机上的数据怎么同步到从机上:

  • 主机持续将新的所有收集到的修改命令自动依次传给从机,完成同步,此操作也称为增量复制

2.薪火相传

        上面的一主二仆主机需要挨个传送数据给从机,这样主机压力有点大,能不能使从机之间进行数据的传输呢?

        上一个slave1其实也可以是下一个slave2的Master,slave1同样可以接收其他slave的连接和同步请求,那么该slave1作为了链条中下一个的"master"(实际还是6379的从机),可以有效减轻6379master的传输压力,去中心化降低风险。

        用salveof ip port命令进行操作。风险就是这个salve1宕机了,后面连接的salve1的从机就没法同步备份了。如果6379主机master挂了,那么从机还是从机,只是无法写数据了。

3.反客为主

        反客为主就是当6379master主机宕机后,可以有一个从机slave可以升级为master主机,其它后面的slave不用做任何修改。需要手动用 slaveof no one 将从机变为主机。但是缺点是我们要手动设置,可以采用哨兵模式来自动完成。

4.哨兵机制

 

        Redis的哨兵机制是一套独立的模式,哨兵可看作是一个独立的进程,用来监视主机,我们需要单独启动,该进程发送命令,等待主机的响应,达到监控主机Redis服务的作用。

        如果在规定的时间内,接收不到主机的响应,那就说明主机挂掉了,则会通过一套选举机制,从众多的从机当中选取一台当作Redis服务的主机,原主机的直系小弟从机配置会自动变换,变为选举的主机的从机。就算挂掉的主机重新上线,还是会成为刚被选举的主机的从机。

4.1从机之间是怎么推选的?

1.选择配置文件中优先级靠前的,值越小,优先级越高,默认为100。

2.选择和原主机数据同步最全的从机。

3.选择runid最小的从机,启动时,会自动生成一个40位的runid。

5.主从复制的问题

        由于所有的写操作都是先在主机上操作,然后同步更新到从机上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

 

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

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

相关文章

Redis数据备份和还原

Redis SAVE 命令用于创建当前数据库的备份文件,文件名默认为dump.rdb。备份数据库数据可以增强对数据的保护,提升数据的安全性。当数据不小心丢失或者被删除时,我们就可以通过相应的操作进行数据恢复。本节介绍 Redis 的数据备份和数据还原操…

mybatis的使用,mybatis的实现原理,mybatis的优缺点,MyBatis缓存,MyBatis运行的原理,MyBatis的编写方式

文章目录 MyBatis简介结构图Mybatis缓存(一级缓存、二级缓存)MyBatis是什么?mybatis的实现原理JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?Mybatis优缺点优点缺点映射关系 MyBatis的解析和运行原理MyBatis的…

浅谈安科瑞剩余电流继电器在智能建筑中的应用

摘要:分析了智能建筑应用剩余电流继电器的必要性,介绍了ASJ剩余电流继电器的主要功能、工作原理、分类情况和提出了在选择剩余电流保护断路器时的原则和注意事项。 Abstract: the necessity of applying residual current relay in intelligent buildin…

不同视频格式如何一键生成二维码?二维码视频制作在线技巧

现在通过扫码看视频是很多人在使用的一种方式,通过制作视频二维码来引导用户了解自己的内容,但是视频有很多种不同的格式,那么有什么方法能够将不同格式的视频生成二维码呢?下面来教大家一招,通过在线的视频二维码生成…

MLFlow 入门(Model管理,生命周期管理)

最近需求需要使用mlflow,去学习了下,记录。 简介 MLflow是一个开源平台,专门为了帮助机器学习的从业者和团队处理机器学习过程中的复杂性而设计的。MLflow关注机器学习项目的完整生命周期,确保每个阶段都是可管理的、可追溯的和可…

邮件泄密案例分析

近日,一起令人震惊的事件在美军方内部引发了广泛关注。据报道,美军方意外将数百万封包含敏感信息的邮件发至非洲国家马里。这些邮件涉及的内容十分广泛,包括军事行动计划、人员部署、战术策略等,甚至还有部分涉及国家安全和战略决…

前缀和——238. 除自身以外数组的乘积

文章目录 🍷1. 题目🍸2. 算法原理🍥解法一:暴力求解🍥解法二:前缀和(积) 🍹3. 代码实现 🍷1. 题目 题目链接:238. 除自身以外数组的乘积 - 力扣&a…

2023.11.24 关于 请求转发 和 请求重定向 的区别

目录 请求转发(forward) 请求重定向(redirect) 二者区别 定义不同 请求方不同 数据共享不同 最终 URL 地址不同 代码实现不同 阅读下文之前 建议点击下方链接简单了解 Fiddle Fiddle 的安装与使用 请求转发(fo…

基于UI交互意图理解的异常检测方法

美团到店平台技术部/质量工程部与复旦大学周扬帆教授团队开展了科研合作,基于业务实际场景,自主研发了多模态UI交互意图识别模型以及配套的UI交互框架。 本文从大前端质量保障领域的痛点出发,介绍了UI交互意图识别的方法设计与实现。基于UI交…

训练日志——logging

目录 基础使用日志的6个级别打印日志修改打印级别 高级应用logging的组成记录器Loggers处理器Handlers过滤器Filterformatter格式创建关联打印日志 配置文件参考 基础使用 日志的6个级别 打印日志 import logginglogging.debug(调试日志) logging.info(消息日志) logging.war…

开源vs闭源,处在大模型洪流中,向何处去?

文章目录 一、开源和闭源的优劣势比较1.1 开源优势1.2 闭源的优势 二、开源和闭源对大模型技术发展的影响2.1 数据共享2.2 算法创新2.3 业务拓展2.4 安全性和隐私2.5 社会责任和伦理 三、开源与闭源的商业模式比较3.1 盈利模式3.2 市场竞争3.3 用户生态3.4 创新速度 四&#xf…

基于浣熊算法优化概率神经网络PNN的分类预测 - 附代码

基于浣熊算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于浣熊算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于浣熊优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

MyBatis的解析和运行原理

文章目录 MyBatis的解析和运行原理MyBatis的工作原理 MyBatis的解析和运行原理 MyBatis编程步骤是什么样的? 1、 创建SqlSessionFactory 2、 通过SqlSessionFactory创建SqlSession 3、 通过sqlsession执行数据库操作 4、 调用session.commit()提交事务 5、 调用…

【JavaWeb】TomcatJavaWebHTTP

Tomcat&JavaWeb&HTTP 文章目录 Tomcat&JavaWeb&HTTP一、Tomcat1.1 版本选择及安装1.2 目录1.3 WEB项目部署的方式 二、IDEA中Java Web开发部署流程三、HTTP协议3.1 发展历程3.2 HTTP协议的会话方式3.3 请求报文3.4 响应报文 一、Tomcat Tomcat是Apache 软件基…

机器学习探索计划——KNN算法流程的简易了解

文章目录 数据准备阶段KNN预测的过程1.计算新样本与已知样本点的距离2.按照举例排序3.确定k值4.距离最近的k个点投票 scikit-learn中的KNN算法 数据准备阶段 import matplotlib.pyplot as plt import numpy as np# 样本特征 data_X [[0.5, 2],[1.8, 3],[3.9, 1],[4.7, 4],[6.…

通过JMeter压测结果来分析Eureka多种服务下线机制后的服务感知情况

文章目录 前言1. Eureka-Server的设计2. EurekaRibbon感知下线服务机制3.服务调用接口压测模型4.Eureka几种服务下线的方式4.1强制下线压测 4.2 发送delete()请求压测 4.3 调用DiscoveryManager压测 4. 三方工具Actuator 总结 前言 上文末尾讲到了Eurek…

跑步运动耳机哪个牌子好?运动型无线耳机排行榜

​运动耳机是我们运动时不可或缺的装备,它可以让你享受高品质的音乐,还提供了高舒适佩戴体验以及稳定的连接。然而面对市面上层出不穷的运动耳机,到底哪款更值得入手?今天我为大家推荐几款市面上备受好评的运动耳机,是…

【数据库】数据库物理执行计划最基本操作-表扫描机制与可选路径,基于代价的评估模型以及模型参数的含义

物理执行计划基本操作符 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏…

SAS9.2软件“OLE:对象的类没有在注册数据库中注册“问题的解决. 2023-11-25

操作系统测试平台: Win7 sp1 32bit (6.1.7601.26321 (Win7 RTM)) ; Win 11 64bit(具体版本不详) 其它win平台理论上也可以,可自行测试 1.安装依赖库(必要步骤) 下载地址: Microsoft Visual C 2005 Redistributable 下载 Microsoft Visual C 2008 Redistributable 官方vc库总…

十大排序之计数排序、桶排序、基数排序(详解)

文章目录 🐒个人主页🏅算法思维框架📖前言: 🎀计数排序 时间复杂度O(nk)🎇1. 算法步骤思想🎇2.动画实现🎇 3.代码实现 🎀桶排序🎇1. 算法步骤思想&#x1f38…