首页 > 文档
Redi是如何处理容易超时的系统调用的?
- 2024-05-30
- 1268 ℃
BIO 线程简介
Redis 在运行过程中,不可避免的会产生一些运行慢的、容易引发阻塞的任务,如将内核中的文件缓冲同步到磁盘中、关闭文件,都会引发短时阻塞,还有一些大 key,如一些元素数高达万级或更多的聚合类元素,在删除时,由于所有元素需要逐一释放回收,整个过程耗时也会比较长。而 Redis 的核心处理线程是单进程单线程模型,所有命令的接受与处理、数据淘汰等都在主线程中进行,这些任务处理速度非常快。如果核心单线程还要处理那些慢任务,在处理期间,势必会阻塞用户的正常请求,导致服务卡顿。为此,Redis 引入了 BIO 后台线程,专门处理那些慢任务,从而保证和提升主线程的处理能力。
Redis 的 BIO 线程采用生产者-消费者模型。主线程是生产者,生产各种慢任务,然后存放到任务队列中。BIO 线程是消费者,从队列获取任务并进行处理。如果生产者生产任务过快,队列可用于缓冲这些任务,避免负荷过载或数据丢失。如果消费者处理速度很快,处理完毕后就可以安静的等待,不增加额外的性能开销。再次,有新任务时,主线程通过条件变量来通知 BIO 线程,这样 BIO 线程就可以再次执行任务。
下一篇:Redi是如何进行主从复制的?
相关内容
Node.js 在前端工程化和...
市场开发表 - 企业管理表格
深入理解Android自动化测试
教师招聘面试秘籍资料 -- 讲课
Python语言及其应用
技术垄断:文明向技术投降
php5.3使用手册,PHP5.3开发
Redi系统架构中各个处理...
-
Linux内核精髓 ——精通Linux内核必会的75个绝技
2024-05-24 1084
-
辞职与退休表 - 企业管理表格
2024-07-30 1660
-
考研英语阅读命题句每日一句 谭剑波
2024-08-19 1030
-
教师资格证清晨读书计划
2024-08-19 1498
-
漫谈设计模式:从面向对象开始
2024-05-24 1006
-
中医执业医师(2018)-基础学习笔记
2024-08-20 1909
-
中医助理医师(2019)-冲刺串讲笔记
2024-08-20 1727
-
企业公文\新闻信息范例
2024-08-06 1475
-
photoshop滤镜详解
2021-07-12 950
-
2012英语专业教师招聘试题
2024-08-20 1228
文章评论 (0)
- 这篇文章还没有收到评论,赶紧来抢沙发吧~


下载完整资料
点击分享文章