首页>资讯 > 综合资讯 > 正文

当前看点!美团二面:细数 Redis 阻塞的9种情况

来源:阿Q说代码    2023-04-22 05:20:35

哈喽大家好,我是阿Q!

前两天去美团面试的陈同学回来了,看他满脸泄气的样子,准是没拿到 Offer。


(资料图片仅供参考)

听了他面试的经过,真替他感到惋惜。究其原因,是被一道面试题拦住了去路:看你简历上写着精通 Redis,请你总结一下 Redis 中存在的阻塞问题吧。

正好阿Q这几天正在研究 Redis,就顺便在这儿给大家做个总结。

命令阻塞

使用不当的命令造成客户端阻塞:

keys * :获取所有的 key 操作;Hgetall:返回哈希表中所有的字段和;smembers:返回集合中的所有成员;

这些命令时间复杂度是O(n),有时候也会全表扫描,随着n的增大耗时也会越大从而导致客户端阻塞。

SAVE 阻塞

大家都知道 Redis 在进行 RDB 快照的时候,会调用系统函数 fork() ,创建一个子线程来完成临时文件的写入,而触发条件正是配置文件中的 save 配置。

当达到我们的配置时,就会触发 bgsave 命令创建快照,这种方式是不会阻塞主线程的,而手动执行 save 命令会在主线程中执行,阻塞主线程。

同步持久化

当 Redis 直接记录 AOF 日志时,如果有大量的写操作,并且配置为同步持久化

appendfsync always

即每次发生数据变更会被立即记录到磁盘,因为写磁盘比较耗时,性能较差,所以有时会阻塞主线程。

AOF 重写fork 出一条子线程来将文件重写,在执行​​BGREWRITEAOF​​命令时,Redis 服务器会维护一个 AOF 重写缓冲区,该缓冲区会在子线程创建新 AOF 文件期间,记录服务器执行的所有写命令。当子线程完成创建新 AOF 文件的工作之后,服务器会将重写缓冲区中的所有内容追加到新 AOF 文件的末尾,使得新的 AOF 文件保存的数据库状态与现有的数据库状态一致。最后,服务器用新的 AOF 文件替换旧的 AOF 文件,以此来完成 AOF 文件重写操作。

阻塞就是出现在第2步的过程中,将缓冲区中新数据写到新文件的过程中会产生阻塞。

AOF 日志

AOF 的日志记录不像关系型数据库那样在执行命令之前记录日志(方便故障恢复),而是采用先执行命令后记录日志的方式。

原因就是 AOF 记录日志是不会对命令进行语法检查的,这样就能减少额外的检查开销,不会对当前命令的执行产生阻塞,但可能会给下一个操作带来阻塞风险。

这是因为 AOF 日志也是在主线程中执行的,如果在把日志文件写入磁盘时,磁盘写压力大,就会导致写盘很慢,进而导致后续的操作也无法执行了。

大 Key 问题

大 key 并不是指 key 的值很大,而是 key 对应的 value 很大。

大 key 造成的阻塞问题如下:

客户端超时阻塞:由于 Redis 执行命令是单线程处理,然后在操作大 key 时会比较耗时,那么就会阻塞 Redis,从客户端这一视角看,就是很久很久都没有响应。引发网络阻塞:每次获取大 key 产生的网络流量较大,如果一个 key 的大小是 1 MB,每秒访问量为 1000,那么每秒会产生 1000MB 的流量,这对于普通千兆网卡的服务器来说是灾难性的。阻塞工作线程:如果使用 del 删除大 key 时,会阻塞工作线程,这样就没办法处理后续的命令。查找大 key

当我们在使用 Redis 自带的​​--bigkeys​​参数查找大 key 时,最好选择在从节点上执行该命令,因为主节点上执行时,会阻塞主节点。

我们还可以使用 SCAN 命令来查找大 key;通过分析 RDB 文件来找出 big key,这种方案的前提是 Redis 采用的是 RDB 持久化。网上有现成的工具:redis-rdb-tools:Python 语言写的用来分析 Redis 的 RDB 快照文件用的工具rdb_bigkeys:Go 语言写的用来分析 Redis 的 RDB 快照文件用的工具,性能更好。删除大 key

删除操作的本质是要释放键值对占用的内存空间。

释放内存只是第一步,为了更加高效地管理内存空间,在应用程序释放内存时,操作系统需要把释放掉的内存块插入一个空闲内存块的链表,以便后续进行管理和再分配。这个过程本身需要一定时间,而且会阻塞当前释放内存的应用程序。

所以,如果一下子释放了大量内存,空闲内存块链表操作时间就会增加,相应地就会造成 Redis主线程的阻塞,如果主线程发生了阻塞,其他所有请求可能都会超时,超时越来越多,会造成 Redis 连接耗尽,产生各种异常。

删除大 key 时建议采用分批次删除和异步删除的方式进行。

清空数据库

清空数据库和上面 bigkey 删除也是同样道理,flushdb、flushall 也涉及到删除和释放所有的键值对,也是 Redis 的阻塞点。

集群扩容

Redis 集群可以进行节点的动态扩容缩容,这一过程目前还处于半自动状态,需要人工介入。

在扩缩容的时候,需要进行数据迁移。而 Redis 为了保证迁移的一致性,迁移所有操作都是同步操作。

执行迁移时,两端的 Redis 均会进入时长不等的阻塞状态,对于小Key,该时间可以忽略不计,但如果一旦 Key 的内存使用过大,严重的时候会触发集群内的故障转移,造成不必要的切换。

关键词:

当前看点!美团二面:细数 Redis 阻塞的9种情况

哈喽大家好,我是阿Q!前两天去美团面试的陈同学回来了,看他满脸泄气的样子,准是没拿到Offer。听了他面试

签约273.6亿元 江西南昌红谷滩区举办招商推介暨重大项目签约会

中新网南昌4月21日电(卢梦梦)21日上午,江西南昌红谷滩区(未来科学城)招商推介暨重大项目签约大会举行。此

当前看点!奕通信息2022年净利323.46万同比增长33.48% 营业成本大幅减少

奕通信息2022年净利323 46万同比增长33 48%营业成本大幅减少2023 4 2122:15:59挖贝网丁易涵挖贝网4月21日,奕通信息(

今热点:守正创新 逸乐途斩获CTJPA中国品牌创新奖

近日,由中国玩具和婴童用品协会(以下简称中玩协)主办,以“不确定时代,企业如何重塑增长”为主题的玩具

学习路上|鲁东大学:深耕“青春向党”品牌,开展“沉浸式”主题 快讯

为推动学习贯彻习近平新时代中国特色社会主义思想主题教育高质量开展,把学习贯彻党的二十大精神和学校第三

湘乡市税务局优质高效服务获企业点赞

湖南日报·新湖南客户端4月21日讯(通讯员周子龙)4月19日上午,湖南湘盎裕源建设有限公司将一面印有“办事

当前信息:湘潭高新区税务局积极推动基层党建示范点创建工作

湖南日报·新湖南客户端4月21日讯(通讯员段婷婷)4月19日,湘潭市税务局相关负责人一行到湘潭高新区税务局

知原药业IPO:7名董监高的前东家,曾卷入轰动一时的“银杏叶事件” 环球即时看

【文 观察者网邹煦晨编辑 张广凯】近日,江苏知原药业股份有限公司(下称“知原药业”)提交首份主板IPO申

精选!今天理发双方都没戴口罩,会不会感染病毒?

会的!至少理发员应该载上口罩!因为理发员接待的顾客太多,来至四面八方。不可能都一一进行检测。更有不明

今日dnf满级职业转换书_dnf职业转换书90级

1、不,别想了。2、如果90后epic跳槽,那谁来花钱刷深渊?谁还会练小号?练小号要花钱。3、网游是赚钱的,

天天热点!adx会员登录_有缘网会员登录

1、有缘网的会员需要充值的,登录方式和普通用户一样,使用账户用户名和密码或者直接用新浪微博微信QQ等第

世界百事通!让居民群众办事更便捷 高新区推出“一件事”审批服务

本报讯(记者顾玲)近日,苏州高新区行政审批局让某影城一天内就办齐了《电影放映经营许可证》和《卫生许可

中信银行贵阳分行举办EasyGo会员品牌发布会

4月21日,中信银行贵阳分行举办“筑梦新未来出国EasyGo”会员品牌发布会暨英国如意签活动,为近百名贵州赴

湖南娄底:反诈宣传“接地气”,增强群众“免疫力”_当前热议

“蝇头小利是诈骗,刷单汇款是陷阱,擦亮眼睛多思考,莫因小利亏大钱。”连日来,在湖南省娄底市娄星区万宝

“小草莓”开启“莓”好生活

四月的河滩,景色宜人。在陕西省咸阳市长武县枣园镇西河村的温室大棚里,阵阵草莓的清香扑面而来——温室里

【当前独家】科龙空调借势520新青年音乐节 玩转“浪漫营销”

以年轻的名义集结,用浪漫的因素开启夏日时光。2023年5月20日-5月21日科龙空调将再度以协办方的身份,前往新

又一A级国际车展将回归,2024北京车展明年4月举办-世界快播

北京日报客户端|记者杨天悦时隔四年,北京国际汽车展览会将再次在北京举办。4月21日,北京车展组委会宣布,

密云法院首次适用遗产管理人制度确保遗产顺利分割

北京日报客户端|记者安然4月19日,密云法院巨各庄法庭引导当事人及时推选遗产管理人,成功调解一起部分继承

国家图书馆 “五一”劳动节开馆安排公布

国家图书馆根据《国务院办公厅关于2023年部分节假日安排的通知》精神,现将我馆“五一”劳动节期间开馆安排

ST汇华2022年亏损3081万同比亏损增加 计提光华书刊资产减值损失

ST汇华2022年亏损3081万同比亏损增加计提光华书刊资产减值损失2023 4 2120:21:08挖贝网于彤挖贝网4月21日,ST汇华(831

今日快讯:面向粤港澳市场 江西推出1680万元文旅消费券

今年4月底至12月底期间,针对粤港澳市场,江西省各市准备了1680万元的文化和旅游消费券,涉及景区门票、旅

热消息:澳门初级法院宣判德晋集团前负责人陈荣炼获刑14年

中新社澳门4月21日电 澳门特区初级法院第一刑事法庭21日对涉德晋贵宾会犯罪的刑事案件作一审宣判,德晋集团

2023年全国群众性民族器乐交流展示活动启动

接下来展演分为《民族旋律·乐动淀园》《群星华彩·器语铿锵》《时代之声·音韵芳华》三个乐章,北京市海淀

2023陕西西安经济技术开发区管委会事业编制公办学校教职工招聘报名入口

2023陕西西安经济技术开发区管委会事业编制公办学校教职工招聘报名入口设在全国人事考试服务平台,报名时间

实时:2023山东潍坊市寿光综合医院(原寿光市人民医院)招聘专业技术人员80人公告

寿光市人民医院始建于1953年7月,现已发展成为一所集医疗、教学、科研、预防保健和急诊急救为一体的综合性

各地深入挖掘农村内需潜力_天天聚看点

农业农村经济开局良好,为稳增长、稳就业、稳物价提供有力支撑。在4月20日举行的国新办新闻发布会上,农业

美媒:美国枪支暴力致信任危机 法律混乱和种族主义成诱因

海外网4月21日电据美联社20日报道,美国近期频繁发生民众因走错路、上错车、敲错门就遭枪击的事件,显露枪

焦点要闻:金鹿公务一季度包机创历史新高,公务机包机市场为何火了

往年的3月份,公务机运行的活跃度通常会迎来一个短暂的回调,但今年则一反常态。

3月《王者荣耀》蝉联全球手游畅销榜冠军 吸金2.15亿美元 全球热文

《PUBGMobile》以1 39亿美元的收入位列榜单第2名,其中,65 6%的收入来自中国iOS市场,美国市场的收入占8 7

74岁,达利欧与年轻人聊了一小时-每日简讯

昨晚(4月20日),中信出版联动抖音,邀请到了瑞·达利欧与几位同为抖音知识创作者的年轻人面对面,他们是

综合资讯

+更多

热点资讯

+更多
为什么不建议买股票?为什么不建议散户频繁交易股票?
为什么不建议买股票?因为股票是有风险的,而且风险很大,的确有不少人炒股发家致富了,但是有更多人因为炒股输光了自己的资产,甚至妻离子 [详细]

Copyright @ 2008-2020  www.43710.com   All Right Reserved Powered by 财经情报网 版权所有

财经情报网   联系邮箱:562 66 29@qq.com

网站备案:沪ICP备2020036824号-12