Redis Sentinel 模式最少几个Sentinel节点

Redis部署全攻略——哨兵模式 redis哨兵模式部署、验证 阅读详情
AI摘要

本文探讨了Redis Sentinel模式在高可用场景下的应用,通过实验验证了Sentinel节点的最小数量需求,分析了不同节点数量对系统高可用性的影响。阐述了Sentinel的工作原理,包括故障检测、选举和故障转移过程。

Redis Sentinel 模式是一个Redis官方提供的高可用解决方案,其主要作用是在众多主从节点之间进行服务治理,比如:master宕机了,Sentinel的职责就是选举一个Slave服务为master,继续提供服务。网络上讲了很多理论,突然有人问我:Redis Sentinel最少可以起多少个Sentinel。

我个人理解这个东西可以分为两种情况讨论:

  1. 实际情况,其实单纯从代码的情况,其实一个Sentinel就能完成主观下线(sdown,Subjectively Down),客观下线(odown, Objectively Down) 的判断,自动发现 Sentinel 和从服务器,并且完成故障转移。
    下面是我做的一个实验:

在这里插入图片描述
sentinel的配置文件如下:
sentinel.conf

sentinel monitor mymaster 127.0.0.1 63792 1
sentinel down-after-milliseconds mymaster 6000
sentinel config-epoch mymaster 1

Sentinel 只有一个节点。
如果这个时候我kill掉端口为6379的master节点。结果如下:
在这里插入图片描述
上图的解释如下:

+reset-master <instance details> -- 当master被重置时.
+slave <instance details> -- 当检测到一个slave并添加进slave列表时.
+failover-state-reconf-slaves <instance details> -- Failover状态变为reconf-slaves状态时
+failover-detected <instance details> -- 当failover发生时
+slave-reconf-sent <instance details> -- sentinel发送SLAVEOF命令把它重新配置时
+slave-reconf-inprog <instance details> -- slave被重新配置为另外一个master的slave,但数据复制还未发生时。
+slave-reconf-done <instance details> -- slave被重新配置为另外一个master的slave并且数据复制已经与master同步时。
-dup-sentinel <instance details> -- 删除指定master上的冗余sentinel时 (当一个sentinel重新启动时,可能会发生这个事件).
+sentinel <instance details> -- 当master增加了一个sentinel时。
+sdown <instance details> -- 进入SDOWN状态时;
-sdown <instance details> -- 离开SDOWN状态时。
+odown <instance details> -- 进入ODOWN状态时。
-odown <instance details> -- 离开ODOWN状态时。
+new-epoch <instance details> -- 当前配置版本被更新时。
+try-failover <instance details> -- 达到failover条件,正等待其他sentinel的选举。
+elected-leader <instance details> -- 被选举为去执行failover的时候。
+failover-state-select-slave <instance details> -- 开始要选择一个slave当选新master时。
no-good-slave <instance details> -- 没有合适的slave来担当新master
selected-slave <instance details> -- 找到了一个适合的slave来担当新master
failover-state-send-slaveof-noone <instance details> -- 当把选择为新master的slave的身份进行切换的时候。
failover-end-for-timeout <instance details> -- failover由于超时而失败时。
failover-end <instance details> -- failover成功完成时。
switch-master <master name> <oldip> <oldport> <newip> <newport> -- 当master的地址发生变化时。通常这是客户端最感兴趣的消息了。
+tilt -- 进入Tilt模式。
-tilt -- 退出Tilt模式。

master 6379宕机,slave2升为master。
在这里插入图片描述

  1. 另外一种是实际生产情况。
    我们先来看看Redis的sentinel.conf配置文件解释。
# 设置端口
port 26379
# 是否守护进程启动
 daemonize no
# 守护进程运行的时候需要保留pidfile
pidfile /var/run/redis-sentinel.pid
# 日志文件
logfile "/root/log/sentinel.log"
## sentinel monitor master-group-name hostname port quorum
## quorum的解释如下:
 ##(1)至少多少个哨兵要一致同意,master进程挂掉了,或者slave进程挂掉了,或者要启动一个故障转移操作
## (2)quorum是用来识别故障的,真正执行故障转移的时候,还是要在哨兵集群执行选举,选举一个哨兵进程出来执行故障转移操作
## (3)假设有5个哨兵,quorum设置了2,那么如果5个哨兵中的2个都认为master挂掉了; 2个哨兵中的一个就会做一个选举,选举一个哨兵出来,执行故障转移; 如果5个哨兵中有3个哨兵都是运行的,那么故障转移才会被允许执行。
# 原文是:Note that whatever is the ODOWN quorum, a Sentinel will require to
# be selected by the majority of the known Sentinels in order to
# start a failover, so no failover can be performed in minority.
sentinel monitor mymaster 127.0.0.1 6379 3

# down-after-milliseconds,超过多少毫秒跟一个redis实例断了连接(ping不通),哨兵就可能认为这个redis实例挂了
sentinel down-after-milliseconds mymaster 30000

# parallel-syncs,新的master别切换之后,同时有多少个slave被切换到去连接新master,重新做同步,数字越低,花费的时间越多
# 比如:master宕机了,4个slave中有1个切换成了master,剩下3个slave就要挂到新的master上面去
# 这个时候,如果parallel-syncs是1,那么3个slave,一个一个地挂接到新的master上面去,1个挂接完,而且从新的master sync完数据之后,再挂接下一个。
# 如果parallel-syncs是3,那么一次性就会把所有slave挂接到新的master上去
sentinel parallel-syncs mymaster 1

#failover-timeout,执行故障转移的timeout超时时长,Default is 3 minutes.
sentinel failover-timeout mymaster 180000

首先我们回归问题:Redis Sentinel 模式最少几个Sentinel节点。
我们上面已经从代码的角度考虑了,其实一个sentinel就可以完成所有的功能,但是我们使用了Sentinel就是为了高可用。
高可用的概念可以参考CAP 理论十二年回顾。我的理解是CAP中,CAP就算各自有100分,其实我们生成环境也并不意味着一样要三个都100分,我们要根据自己的情况来做取舍。比如高可用1年360天,只是10s钟几十个顾客发生了不可用,我觉得这个整体看也是高可用的。
那么回归我们的Redis哨兵,高可用其实我怎么样处理呢?

上面的部署方案会存在着一个问题:sentinel和master同在一个机器上。
假设sentinel和master同在一个机器上其他3个slave在另外3台机器上,此时网络出现分区,sentinel和master被分割出去了,那么三台slave就无sentinel了。由此可以衍生出问题 slave保留的是旧数据,客户端分片读到这里读不到新的数据,从而到处业务处理错误,造成不可挽回的损失。

假设现在有2个sentinel。
如果哨兵集群仅仅部署了个2个哨兵实例,quorum=1

+----+         +----+
| M1 |---------| R1 |
| S1 |         | S2 |
+----+         +----+
node1           node2

Configuration: quorum = 1

master宕机,s1和s2中只要有1个哨兵认为master宕机就可以还行切换,同时s1和s2中会选举出一个哨兵来执行故障转移

同时这个时候,需要majority,也就是大多数哨兵都是运行的,2个哨兵的majority就是2(2的majority=2,3的majority=2,5的majority=3,4的majority=3),2个哨兵都运行着,就可以允许执行故障转移。这里多提一点,一般节点和sentinel都用奇数个节点,有利于防止脑裂。

majority计算如下:

int sentinelIsQuorumReachable(sentinelRedisInstance *master, int *usableptr) {
   dictIterator *di;
   dictEntry *de;
   int usable = 1; /* Number of usable Sentinels. Init to 1 to count myself. */
   int result = SENTINEL_ISQR_OK;
   int voters = dictSize(master->sentinels)+1; /* Known Sentinels + myself. */

   di = dictGetIterator(master->sentinels);
   while((de = dictNext(di)) != NULL) {
       sentinelRedisInstance *ri = dictGetVal(de);

       if (ri->flags & (SRI_S_DOWN|SRI_O_DOWN)) continue;
       usable++;
   }
   dictReleaseIterator(di);

   if (usable < (int)master->quorum) result |= SENTINEL_ISQR_NOQUORUM;
   if (usable < voters/2+1) result |= SENTINEL_ISQR_NOAUTH;
   if (usableptr) *usableptr = usable;
   return result;
}

majority=voters/2+1

但是如果整个M1和S1运行的机器宕机了,那么哨兵只有1个了,此时就没有majority来允许执行故障转移,虽然另外一台机器还有一个R1,但是故障转移不会执行。

如果两个节点集群如下:

+----+          +----+         +----+
| S1 |----------| M1 |---------| S1 |
+----+          +----+         +----+
node1           node2	       node3	 
                  | 
                  |
                +----+  
                | R1 |
                +----+

如果node1节点宕机,而且M1 也宕机,这个时候就会出现R1不可用,即整个redis不可用的情况。而且sentinel消耗的资源并不多,不需要单独部署一台机器,否则就有点浪费了。
但是这种情况也比只有一台sentinel的时候可用性更加高。
用100分来打比喻,如果一个sentinel的时候是98分(即98%高可用),那么两个的sentinel的时候就是99分(99%高可用)。

如果是经典的3节点哨兵集群

       +----+
       | M1 |
       | S1 |
       +----+
          |
+----+    |    +----+
| R2 |----+----| R3 |
| S2 |         | S3 |
+----+         +----+

Configuration: quorum = 2。
majority=2(majority不能配置,由redis自行计算所得。)
正常生产环境一般部署如上。
如果M1所在机器宕机了,那么三个哨兵还剩下2个,S2和S3可以一致认为master宕机,然后选举出一个来执行故障转移

同时3个哨兵的majority是2,所以还剩下的2个哨兵运行着,就可以允许执行故障转移。
这就是经典的sentinel3个节点的集群。节省资源的同时又满足了高可用。
如果是100分的话,上面的可用性就能等到(99.9%)。
当然现实情况肯定要根据自己的项目需要而且配置,Redis的主从备份,分片机制等其实并没有ElasticSearch做的那么简单易用。
所以我个人觉得Redis正式上环境,最少又3个sentinel节点。

检查哨兵状态

redis-cli -h 192.168.31.187 -p 5000
sentinel master mymaster
SENTINEL slaves mymaster
SENTINEL sentinels mymaster
SENTINEL get-master-addr-by-name mymaster

参考:
CAP 理论十二年回顾:"规则"变了 ,https://www.infoq.cn/article/cap-twelve-years-later-how-the-rules-have-changed/
Redis Sentinel机制与用法(一)https://www.cnblogs.com/zhoujinyi/p/5569462.html

redis之sentinel模式 redis哨兵模式,高可用集群部署模式 阅读详情

相关推荐

Redis 主从模式下主节点挂了怎么办? 如何为间断对外提供服务? Redis哨兵 Sentinel

哨兵是什么? 哨兵是Redis高可用(HA)的解决方案.只不过他不支持数据的存储. 它的组成: Sentinel是一个系统(或者说是集群)它是由一个(多个实例)组成 为什么需要Redis哨兵? Redis有主从模式(客户端写操作发送到主节点,读操作发送到从节点) 如果这时候主节点出现故障,不能对外提供服务了.这个时候我们需要做哪几个操作才能正常的对外提供不间断服务. 1.我们不知什么主节点挂了(最主要的问题) 2.手工把从库设置为主库 3.户端还需要修改新的主库地址 Redis如果解决这些问题 首先我们

坚持需要成为习惯 5105

redis 搭建哨兵模式 一主两从三哨兵

redis哨兵模式的原理,部署哨兵

li81562的博客 4418

Redis Sentinel实现集群节点故障转移

1. 简介 Redis Sentinel为Redis提供了很高的可用性,在实践中,这意味着你可以部署一个可以解决非人为干预导致节点故障的Redis集群系统。Redis Sentinel还提供了其他的功能:如监控,通知和客户端配置服务的提供方。下面列出来了Redis Sentinel的功能列表: 监控:Sentinel能够监控master节点或slave节点是否处于按照预期工作的状态。通

xianymo的专栏 1万+

redis高可用-哨兵模式搭建(1主2从3哨兵)

先下载redis单机版安装包,建立一个/opt/redis_sentinel目录,将tar.gz包上传到该目录。然后进入解压目录的src目录,输入如下命令执行编译。

qq_39839075的博客 2920

redis 集群二 · sentinel(哨兵)模式

Sentinel模式介绍 主从模式的弊端就是不具备高可用性,当master挂掉以后,Redis将不能再对外提供写入操作,因此sentinel应运而生。 sentinel中文含义为哨兵,顾名思义,它的作用就是监控redis集群的运行状况,特点如下: * sentinel模式是建立在主从模式的基础上,如果只有一个Redis节点,sentinel就没有任何意义 * 当master挂了以后,sentinel会在slave中选择一个做为master,并修改它们的配置文件,其他slave的配置文件也会被修改,比如s

疯飙的蜗牛 3359

七、Redis高可用(哨兵模式Sentinel)

当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器;Sentinel(哨兵)是Redis的高可用性的解决方案,有一个或多个Sentinel示例组成的Sentinel系统可以监视任意多个主节点,以及这些主节点的从节点,并在被监视的主节点下线时,自动将下线的主节点下的某个从节点升级为新的主节点,然后由新的主节点代替已下线的主节点继续处理命令请求。开启sentinel。

爱吃西红柿的博客 1077

redis集群总结及哨兵详解

文章目录redis集群总结及哨兵详解为什么需要集群redis主从复制Sentinel哨兵模式为什么需要哨兵哨兵的基础知识怎么确认宕机呢为什么哨兵至少3个节点哨兵工作流程故障切换日志分析哨兵常用配置哨兵日志简介 redis集群总结及哨兵详解 为什么需要集群 1、单个redis存在不稳定性。当redis服务宕机了,就没有可用的服务了。 2、单个redis的读写能力是有限的 redis主从复制 主节点Master有且仅有一个,从节点Slave可以有多个 只要网络连接正常,Master会一直将自己的数据更新同步给S

weixin_42555971的博客 1411

一文读懂Redis之哨兵(Sentinel)模式搭建

本文详细介绍了Redis高可用方案——哨兵(Sentinel)模式的搭建过程。主要内容包括:1. 环境规划,采用一主二从+3哨兵节点架构;2. 主从模式搭建步骤,包括节点配置、启动验证和数据同步测试;3. 哨兵模式配置,详细说明各关键参数含义;4. 模拟主节点宕机场景,验证哨兵自动故障转移功能。通过实际演示,展示了哨兵模式如何实现主节点宕机时的自动切换,确保Redis服务的高可用性。文中还提供了各环节的配置示例和状态检查方法,为Redis高可用部署提供了完整参考。

野熊佩骑的博客 2327

【redis】哨兵模式

(主节点宕机需手动提升从节点);(无法自动检测节点异常);(网络分区可能导致双主数据冲突)。这些缺陷使得系统可用性难以保障,尤其在分布式场景下隐患显著。为此引入哨兵模式将故障恢复时间从人工介入的分钟级压缩至秒级,构建了完整的高可用体系。

qq_35485206的博客 910

过程挖掘(Process Mining)1——始于颜值

下周开始每周1-2篇的过程挖掘分享 过程挖掘是什么? 过程挖掘与过程管理的关系? 过程挖掘与数据挖掘的关系? 管理学还是计算机科学?

hyhy12580的博客 6236

基于TDOA的chan算法(定位算法)

Chan算法原理 TDOA(TDOA,the time differences of arrival,到达时间差),Chan算法是TDOA定位方法的一个很好用的方法。 Chan算法是非递归双曲线方程组解法,具有解析表达式解,主要特点是:在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加已确定点的数量来提高算法精度。 该算法的推导前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。二维情况下,可分为只有三个点参与定

优快云不再更新 2万+

Redis 哨兵 Sentinel

Redis哨兵(Sentinel)是Redis的高可用解决方案,可自动监控主从节点状态并完成故障转移。当主节点故障时,哨兵能自动选举新主节点并通知客户端,无需人工干预。哨兵采用分布式架构,建议部署奇数个节点,通过Raft算法选举leader进行故障转移。本文详细介绍了哨兵的工作原理、部署方法(基于Docker)和选举流程,解决了主从复制模式下人工恢复的繁琐问题,显著提高了Redis系统的可用性。但哨兵不解决数据存储容量和极端情况下的数据丢失问题,这些问题需要通过Redis集群方案解决。

puppy_1mo的博客 1562

Frida实战:如何用HashMap.put拦截法快速定位安卓App加密参数(附完整脚本)

本文详细介绍了如何使用Frida拦截HashMap.put方法快速定位安卓App加密参数,提供完整脚本和实战案例。通过动态分析技术,相比传统静态分析大幅提升效率,适用于电商、社交、金融等场景的加密参数定位。

jump7的博客 262

Redis: Sentinel节点管理,故障迁移一致性以及TILT模式

raft 共识算法保证了故障迁移一致性在同一个周期里边,不会产生多个领头者也就不会产生多个故障迁移保证了故障迁移的一致性TILT模式是当前节点如果服务器压力大,或者说因为某些其他的原因导致获取不到系统时间没有办法有效的做出命令的回复的一个间隔判断,那么它就会进入TILT这个保护模式当这个保护模式正常运行 30 秒钟,它就会退出如果在这个保护模式期间仍然要做时间判断,还是没有办法去处理,它会延长TILT的这个模式。

Wang的专栏 1476

WhatsApp协议算法

我想其实有很多人还不太了WhatsApp群控,简单来说,它和我们常使用的微信聊天软件是类似的,只不过它是基于通讯录的,操作起来比较简单便捷,所以现在有很多国家都喜欢用WhatsApp。一般情况下,筛号不会造成账号被封的情况,但是呢,如果筛号的频率太快,就会被系统限制筛号能力,不再返回筛号结果,所以,筛号数量和速度一定要控制好。前天逛街突然灵光一现,为什么不试试多路访问呢,简单来说就是信道复用技术,马上跑回家,调取接口,接入通道,导入已经转换成协议的账号,成功登录!

2403_87755661的博客 1943

本地部署DeepSeek-Coder-6.7B 离线版的完整指南:打造适配当前系统的AI助手

《DeepSeek-Coder-6.7B本地部署指南》详细介绍了如何离线部署这款专注于代码生成的AI模型。文章涵盖硬件要求(推荐8核CPU、32GB内存、NVIDIA RTX3080显卡)、软件依赖(Python3.8+、CUDA11.0+、PyTorch1.9+)以及具体安装步骤,包括模型下载、路径配置和GPU加速设置。重点说明如何通过输入系统配置文档和使用说明书,让模型生成适配特定系统的代码,并提供了参数调优和模型微调的方法。该指南旨在帮助开发者在本地安全高效地使用AI助手,实现代码自动生成与优化,提升

欢迎来到我的优快云博客!我专注于技术创新和数字化转型,特别是在低代码平台、人工智能和大数据分析领域的探索与应用。通过深入分析各种行业案例,帮助企业加速数字化进程,提升运营效率与创新能力。在这里,您将找到关于低代码平台、AI技术、数据分析与 1494

Lettuce对redis sentinel的支持

Lettuce与Redis Sentinel的交互方式 支持直接连接Sentinel节点(用于管理任务)和通过Sentinel自动发现Redis主节点两种模式。 RedisURI的必要性 两种模式均需提供RedisURI,且支持配置多个Sentinel主机以实现高可用。

zfj321的博客 2005

顶刊《会计研究》数据复现|最新上市公司数智化数据

本文基于Python文本分析方法构建了中国A股上市公司数智化指标(1991-2024),通过识别年报中的"机器学习""智能医疗"等关键词,量化企业数字化与智能化融合程度。研究发现数智化企业更倾向于非正式渠道的定性披露以规避风险,该指标为监管完善信披规则提供了参考。研究还揭示了数智化对企业信息披露策略的转变,并提出了未来研究方向,包括数智化对绿色创新、ESG表现等影响机制。数据覆盖非金融类上市公司,采用文本挖掘技术构建结构化指标,为相关领域研究提供了微观基础。

PPdata_Academy的博客 1487

Redis-Sentinel(哨兵模式)

Redis 哨兵模式是为了保证 Redis 的高可用性而设计的。它通过监控、自动故障转移、通知等功能,确保主节点出现故障时可以快速恢复,避免单点故障带来的服务中断。虽然配置和管理较为复杂,但它是保证 Redis 集群高可用性的关键技术之一。在实际生产环境中,尤其是需要高可用性和稳定性的应用场景下,使用 Redis 哨兵模式可以极大地提高系统的容错能力。

qq_50847694的博客 2701

保姆级教程:手把手教你从NASA Earthdata免费下载ASTER L2地表温度数据(附shp文件拖拽技巧)

本文提供了一份详细的ASTER L2地表温度数据下载指南,涵盖从NASA Earthdata注册、数据定位到shp文件拖拽技巧的全流程。特别针对新手常见问题如邮箱选择、密码设置、云量筛选等给出实用解决方案,帮助用户高效获取遥感数据并避免常见陷阱。

weixin_42662605的博客 425

Temporal Noise Reduction(TNR)时序去噪技术解析:原理、平台实践与工程调优路径

随着高画质夜景拍照和高清视频拍摄需求的持续增长,图像传感器在低照度环境下输出信号的噪声问题日益突出。相比空间域降噪(SNR),时序去噪(Temporal Noise Reduction, TNR)利用帧间信息进行融合处理,具备更高的信噪比提升效率及更强的边缘保护能力,已成为移动影像ISP链路中的核心环节。本文系统剖析TNR的算法原理、平台实现机制与工程调试路径,并基于实际开发案例分析其在不同场景下的效果差异及调优方法,为工程师提供从理论到实操的完整路径参考。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3205

Redis 高可用与集群模式命令详解【Cluster vs Sentinel 全面对比】

对比项Redis Sentinel 模式Redis Cluster 模式高可用机制哨兵探测 + 自动主从切换主从节点 + 分布式协议数据分片❌ 不支持,所有节点数据一致✅ 分片存储,16384 槽位故障切换单主自动切换主故障后从节点接管槽位使用场景单实例扩展、高可用但不分片分布式高可用+横向扩容客户端要求普通客户端即可需支持 Cluster 协议命令兼容性100% Redis 原生命令不支持部分命令(如 keys *)

喝醉酒的小白 920

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Redis的哨兵模式Sentinel

目录 Sentinel简介 启动井初始化Sentinel 初始化服务器 使用Sentinel专用代码 初始化Sentinel状态 初始化Sentinel状态的masters属性 创建连向主服务器的网络连接 获取主服务器信息 获取从服务器信息 向主服务器和从服务器发送信息 接收来自主服务器和从服务器的频道信息 更新sentinels字典 创建连向其他Sentinel的命令连......

今天吃了吗的博客 2415

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【redis进阶】哨兵 (Sentinel)

Redis 的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工进行主从切换,同时大量的客户端需要被通知切换到新的主节点上,对于上了一定规模的应用来说,这种方案是无法接受的,于是Redis 从 2.8 开始提供了 Redis Sentinel(哨兵)来解决这个问题。Redis Sentinel 的概念Redis Sentinel 的部署Redis Sentinel 命令Redis Sentinel 客户端Redis Sentinel 实现原理一、基本概念。

qq_52842680的博客 2069

Redis-Sentinel(哨兵模式),看这篇就够了哦

简介 Sentinel(哨兵) 是redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进行下线时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。然后由新的主服务器代替已下线的主服务器继续处理命令请求。 例如下图所示: 当Server1 掉线后: 升级Server2 为新的主服务器: 启动并初始化Sentinel 启动一个Sentinel可以使用命令: redis-sentin

养歌的博客 1万+

Redis高可用之Sentinel哨兵模式

Redis关于高可用与分布式有三个与之相关的运维部署模式。分别是主从复制master-slave模式、哨兵Sentinel模式以及集群Cluster模式。这三者都有各自的优缺点以及所应对的场景,以及对应的业务使用量,我们该怎么选择...

分享不一样的技术,与你一起共同成长! 1919
上一篇: 同步、异步、阻塞、非阻塞和IO多路复用是怎么回事?
下一篇: Linux服务器的文件上传下载
袁小黑
博客等级 码龄15年 57粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值