【Redis 多机服务的简单认识】

news2025/5/24 15:11:52

目录

主从同步

哨兵模式

集群服务


随着业务的不断发展,单机 Redis 的性能已经不能满⾜我们的需求了,此时我们需要将单机 Redis 扩展为多机服务,Redis 多机服务主要包含以下 3 个内容:

  • Redis 主从同步
  • Redis 哨兵模式
  • Redis 集群服务(Redis 3.0 新增功能)

主从同步

主从同步 (主从复制) 是 Redis ⾼可⽤服务的基⽯,也是多机运⾏中最基础的⼀个。我们把主要存储数据的节点叫做主节点 (master),把其他通过复制主节点数据的副本节点叫做从节点 (slave),如下图所示:

在 Redis 中⼀个主节点可以拥有多个从节点⼀个从节点也可以是其他服务器的主节点,如下图所示:

主从服务器设置
在 Redis 运⾏过程中,我们可以使⽤ replicaof host port 命令,把⾃⼰设置为⽬标 IP 的从服
务器,执⾏命令如下:

127.0.0.1:6379> replicaof 127.0.0.1 6380
OK 

如果主服务设置了密码,需要在从服务器输⼊主服务器的密码,使⽤ config set masterauth
服务密码命令的方式,例如:

127.0.0.1:6377> config set masterauth pwd123456
OK

主从同步优、缺点分析

主从同步具有以下 3 个优点

  • 性能方面:有了主从同步之后,可以把查询任务分配给从服务器,⽤主服务器来执⾏写操作,这样极⼤的提⾼了程序运⾏的效率,把所有压⼒分摊到各个服务器了;
  • 高可用:当有了主从同步之后,当主服务器节点宕机之后,可以很迅速的把从节点提升为主节点,为 Redis 服务器的宕机恢复节省了宝贵的时间;
  • 防⽌数据丢失:当主服务器磁盘坏掉之后,其他从服务器还保留着相关的数据,不⾄于数据全部丢失。 

主从同步的缺点:这种模式本身存在⼀个致命的问题,当主节点奔溃之后,需要人工干预才能恢复 Redis 的正常使⽤。

哨兵模式

假如晚上发⽣了主从服务器宕机的情况,尤其是在主从服务器节点⽐较多的情况下,如果需要⼈⼯恢复,那么需要的时间和难度是很⼤的,因此我们需要⼀个⾃动的⼯具——Redis Sentinel (哨兵模式) 来把⼿动的过程变成⾃动的,让 Redis 拥有自动容灾恢复 (failover) 的能⼒

也就是说:使⽤哨兵模式可以⽤来监控主从同步服务器节点,并在主从服务器出现问题的时候实现⾃动容灾恢复
哨兵模式如下所示:

PS:Redis Sentinel(哨兵) 的最小分配单位是⼀主⼀从。
哨兵⼯作原理
哨兵的⼯作原理是,⾸先每个 Sentinel 会以每秒钟 1 次的频率,向已知的主服务器、从服务器和以及其它 Sentinel 实例,发送⼀个 PING 命令。
如果最后⼀次有效回复 PING 命令的时间超过 down-after-milliseconds 所配置的值 (默认
30s),那么这个实例会被 Sentinel 标记为主观下线。
如果⼀个主服务器被标记为主观下线,那么正在监视这个主服务器的所有 Sentinel 节点,要以每秒 1 次的频率确认主服务器的确进⼊了主观下线状态。
如果有⾜够数量 (quorum 配置值) 的 Sentinel 在指定的时间范围内同意这⼀判断,那么这个主服务器被标记为客观下线。此时所有的 Sentinel 会按照规则协商⾃动选出新的主节点。

注意:⼀个有效的 PING 回复可以是:+PONG、-LOADING 或者 -MASTERDOWN。如果返回值非以上三种回复,或者在指定时间内没有回复 PING 命令, 那么 Sentinel 认为服务器返回的回复⽆效(non-valid)。

集群服务

Redis 集群(Redis Cluster)是 Redis 多机运⾏最完美的终极⽅案,它是 Redis 3.0 之后推出的服务,它的出现可以让我们完全抛弃主从同步和哨兵模式来实现 Redis 多机运⾏
Redis Cluster 是⽆代理模式去中心化的运⾏模式,客户端发送的绝⼤数命令会直接交给相关节点执⾏,这样⼤部分情况请求命令⽆需转发,或仅转发⼀次的情况下就能完成请求与响应,所以集群单个节点的性能与单机 Redis 服务器的性能是非常接近的,因此在理论情况下,当⽔平扩展⼀倍的主节点就相当于请求处理的性能也提⾼了⼀倍,所以 Redis Cluster 的性能是非常⾼的。
Redis Cluster 架构图如下所示:

从上图可以看出 Redis 的主从同步只能有⼀个主节点,⽽ Redis Cluster 可以拥有⽆数个主从节点,因此 Redis Cluster 拥有更强⼤的平⾏扩展能⼒,也就是说当 Redis Cluster 拥有两个主从节点时,从理论上来讲 Redis 的性能相⽐于单机服务来说性能提升了 2 倍。
 


 

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

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

相关文章

【记录】Truenas scale|Truenas 的 SSH 服务连不上 VScode,终端能连上

一般 Truenas连不上 就只有两种情况: 第一种:用户没对应用户目录。需要去用户管理里面对每个用户设置目录。 第二种情况,服务有个选项没勾选。这时会发现能输入密码但是一点反应都没有,打开details会看到报错channel 3: open fai…

A股风格因子看板 (2023.09 第03期)

该因子看板跟踪A股风格因子,该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子,用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第03期,指数组合数据截止日2023-08-31,要点如下 近1年A股风格因子检验统…

qml怎么显示网页

QML显示网页需要使用Qt WebEngine模块,它提供了一个WebEngineView组件,可以用来在QML中显示和交互网页。 首先,确保你已经安装了Qt WebEngine模块。如果你使用的是Qt的在线安装程序,你可以通过Qt Maintenance Tool来添加这个模块。 以下是如何在QML中使用WebEngineView来…

三维重建_表面重建_基于符号距离场的表面重建

目录 1. 三维物体的表面表达方式 1.1 边界表示法 (Boundary Representation) 1.2 空间划分法 (Spatial-Partitioning Representations) 1.3 构造体素法 (Boundary Constructive Solid Geometry) 2. 三维模型的表述方式 3. 基于符号距离场的表面重建方法 3.1 符号距离…

再不跳槽,就真晚了......

从时间节点上来看,9月、10月是每年跳槽的黄金季! 以 BAT 为代表的互联网大厂,无论是薪资待遇、还是平台和福利,都一直是求职者眼中的香饽饽,“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里&…

吃瓜教程第一二章学习记录

当大多数人听到 "机器学习 "时,他们会联想到机器人:一个可靠的管家或一个致命的终结者,这取决于你问谁。但是,机器学习并不只是未来主义的幻想,它已经存在了。事实上,在一些特殊的应用中&#xf…

Redis:分布式锁误删原因分析

一、线程阻塞 例如,线程一获取分布式锁,但是线程一阻塞时间过长,导致锁超时释放。此时线程二获取分布式锁。当线程一阻塞结束后,释放分布式锁,但是释放的却是线程二的锁。此时线程二就不安全了,线程三也可…

TypeScript——泛型理论与实践

1. 简介 软件工程的一个重要部分就是构建组件,组件不仅需要有定义良好和一致的 API,还需要是可复用的。好的组件不仅能够兼容现有的数据类型,也能适用于未来可能出现的数据类型,这在构建大型软件系统时会有很大的灵活度以及很高的…

Android嵌套事务

这时候旋转设备还是会重置秒表。旋转设备时Android会重新创建活动。如果你的活动包含一个 < fragment >元素&#xff0c;每次重新创建活动时&#xff0c;它会重新插入片段的一个新版本。老片段被丢掉&#xff0c;所有实例变量会设置其初始值。在这个特定的例子中&#xf…

基于微信小程序的“共享书角”图书借还管理系统(springboot+vue)

为设计一个安全便捷&#xff0c;并且使借阅者更好获取本图书借还信息&#xff0c;本文主要有安全、简洁为理念&#xff0c;实现借阅者快捷寻找图书借还信息&#xff0c;从而解决图书借还信息复杂难辨的问题。该系统以springboot架构技术为基础&#xff0c;采用Java语言和MySQL数…

家政服务预约小程序,推拿spa上门预约系统

家政服务预约小程序&#xff0c;用户直接发布需求下单&#xff0c;师傅入驻抢单派单&#xff0c;多商家入驻&#xff0c;上门预约服务流程清晰&#xff0c;适合家政公司或需要预约场景的团队公司使用&#xff0c;支持多种行业上门预约服务场景&#xff1a;家政保洁维修上门服务…

CISP认证介绍(CISECISO)

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库溯源相关 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 什么是CISP CISP &#xff08;Certified Information Security Professional&#xff09; 注册信息安全专业人员资格认证&#xff0c;由中国信息…

几个好用的数据标注软件labelme、CVAT及LabelImage

我们使用yolov3、yolov4、yolov5、yolov8等训练自己的权重时&#xff0c;需要有大量标注好的数据集&#xff0c;这里有几个好用的数据标注软件labelme、CVAT及LabelImage 一、labelme labelme&#xff1a;https://github.com/wkentaro/labelme 这个软件用的比较多&#xff0c…

介绍Spring MVC框架,以及如何使用它构建Web应用程序。

文章目录 什么是 Spring MVC&#xff1f;Spring MVC 的工作原理如何使用 Spring MVC 构建 Web 应用程序配置 Spring MVC创建控制器创建视图配置 Spring MVC 配置文件运行应用程序 总结 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢…

baichuan-53B VS ChatGLM-6B对比

由于百川智能的内测模型是baichuan-53B&#xff0c;尽管模型大小不一致&#xff0c;为了方便&#xff0c;我们仍然选择百川智能baichuan-53B与ChatGLM-6B内测结果进行对比&#xff0c;其中ChatGLM-6B的结果来自https://github.com/THUDM/ChatGLM-6B&#xff0c;假设ChatGLM-6B的…

Spring (2) AOP

目录 1 代理(Proxy)模式 1.1 静态代理 1.2 动态代理 1.2.1 基于接口的动态代理 1.2.2 基于子类的动态代理 2 AOP 2.1 注解开发 1 代理(Proxy)模式 一种设计模式,它的作用是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接调用,而是通过代理类间接调用 1.1 静…

可降阶的高阶方程与高阶线性微分方程

目录 可降阶的高阶方程 高阶线性微分方程 齐次方程 非齐次方程 常系数齐次线性微分方程 常系数非齐次线性微分方程 可降阶的高阶方程 我们需要先理解什么是可降解的高阶微分方程。可降解的高阶微分方程是指可以转化为低阶微分方程的方程。 例如&#xff0c;以下是一个二阶…

docker 获取Nvidia 镜像 | cuda |cudnn

本文分享如何使用docker获取Nvidia 镜像&#xff0c;包括cuda10、cuda11等不同版本&#xff0c;cudnn7、cudnn8等&#xff0c;快速搭建深度学习环境。 1、来到docker hub官网&#xff0c;查看有那些Nvidia 镜像 https://hub.docker.com/r/nvidia/cuda/tags?page2&name11.…

高德地图实现-逆地理编码-输入提示-地图标点-实现车库管理

效果图&#xff1a; 我们将学习如何创建一个前端地图应用程序&#xff0c;该应用程序集成了高德地图API&#xff0c;允许用户进行地点搜索、选择和标记&#xff0c;以及执行逆地理编码以获取地址信息。我们将使用Vue.js框架来构建应用程序&#xff0c;并结合高德地图的功能来实…

.NET Upgrade Assistant 升级 .NET MAUI

.NET Upgrade Assistant 是一种可帮助您将应用程序升级到最新的 .NET版本 的工具&#xff0c;并且您可以使用这个工具将您的应用程序从旧平台&#xff08;例如 Xamarin Forms 和 UWP&#xff09;迁移到新的平台。此外&#xff0c;这个新版本的工具&#xff0c;可以让您在不更改…