Redi是如何处理容易超时的系统调用的?
24-05-24 10:41
986
0
BIO 线程简介
Redis 在运行过程中,不可避免的会产生一些运行慢的、容易引发阻塞的任务,如将内核中的文件缓冲同步到磁盘中、关闭文件,都会引发短时阻塞,还有一些大 key,如一些元素数高达万级或更多的聚合类元素,在删除时,由于所有元素需要逐一释放回收,整个过程耗时也会比较长。而 Redis 的核心处理线程是单进程单线程模型,所有命令的接受与处理、数据淘汰等都在主线程中进行,这些任务处理速度非常快。如果核心单线程还要处理那些慢任务,在处理期间,势必会阻塞用户的正常请求,导致服务卡顿。为此,Redis 引入了 BIO 后台线程,专门处理那些慢任务,从而保证和提升主线程的处理能力。
Redis 的 BIO 线程采用生产者-消费者模型。主线程是生产者,生产各种慢任务,然后存放到任务队列中。BIO 线程是消费者,从队列获取任务并进行处理。如果生产者生产任务过快,队列可用于缓冲这些任务,避免负荷过载或数据丢失。如果消费者处理速度很快,处理完毕后就可以安静的等待,不增加额外的性能开销。再次,有新任务时,主线程通过条件变量来通知 BIO 线程,这样 BIO 线程就可以再次执行任务。
-
jquery日历签到插件
362 0 21-06-02 -
jQuery 3D页面倾斜侧边菜单
362 0 21-05-17 -
jquery特效 元素周期表-3D
jquery特效-3D元素周期表四种展示效果 表面 球体 螺旋 网格 350 0 21-05-17 -
万兴全能格式转换器UniConverter_v12.0.3.5_简体中文绿色特别版
万兴全能格式转换器是一款功能强大的格式转换器,它支持多种视频格式,转换视频格式的速度非常快,而且画质不会有任何损失。用户在使用万兴... 905 0 24-07-01 -
php上传图片到个人百度网盘
平时使用百度网盘,都是下载网盘客户端来上传和下载文件。如果想要在系统中使用百度网盘的上传和下载,肯定要用程序来操作客户端。好在,百度网盘开放平台提供了各种实用的接口,在我们开发的程序中,只需要调用接口,就能够完成文件的上传和下载功能 975 0 21-09-01 -
普通话60篇作品朗读【文字+音频】
60篇短文易错字词归纳.doc作品10号《父亲的爱》.lrc作品10号《父亲的爱》.mp3作品11号《国家荣誉感》.lrc作品11号《国家荣誉感》.mp3作品12... 1253 0 24-08-20 -
奈特消化系统疾病彩色图谱
如果在过去的25年里你曾经是一位医学生的话,就一定不会忘记已故的奈特博士在医学图谱方面的巨大贡献--他以生动的形象教学代替了刻板的灌输... 913 0 24-06-18 -
jquery电脑被黑客攻击页面效果
353 0 21-05-17
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~