【Redis破障之路】三:Redis单线程架构 (2)

单线程也会有一个问题:对于每个命令的执行时间是有要求的。如果某个命令执行过长,会造成其他命令的阻塞,对于Redis这种高性能的服务来说是致命的,所以Redis是面向快速执行场景的数据库。

2、支持多线程的Redis6.0

“Redis不是单线程吗?怎么又支持多线程了?”

相信学到了这里,这已经不是一个问题了。

Redis6.0引入了多线程的特性,这个多线程是在哪里呢?——是对处理网络请求过程采用了多线程

Redis 6.0采用多个IO线程来处理网络请求,网络请求的解析可以由其他线程完成,然后把解析后的请求交由主线程进行实际的内存读写。提升网络请求处理的并行度,进而提升整体性能。

img

那么多并发的线程安全问题存在吗?——当然不存在。

Redis 的多 IO 线程只是用来处理网络请求的,对于命令的执行,Redis 仍然使用单线程来处理。



参考:

【1】:《Redis开发与运维》

【2】:支持多线程的Redis6.0来了

【3】:为什么 Redis 选择单线程模型

【4】:Redis 和 I/O 多路复用

【5】:I/O多路复用技术(multiplexing)是什么?

【6】:一文搞懂I/O多路复用及其技术

【7】:Redis为什么是单线程的

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxpgg.html