268 字
1 分钟
为什么Redis设计为单线程而后面版本为啥又引入多线程呢

为什么Redis设计为单线程而后面版本为啥又引入多线程呢#

单线程设计原因:#

  1. Redis基于内存,大多数操作性能瓶颈来自于CPU
  2. 使用单线程模型,代码简单,处理逻辑清晰,也减少了上下文切换带来的性能开销。
  3. Redis在单线程情况下,使用I/O多路复用模型,就能提高Redis的I/O利用率了。

6.0 引入多线程的原因#

主要是为了应对网络I/O的瓶颈,提高网络I/O处理速度。

随着数据规模的增长和请求量的增加,Redis的执行瓶颈主要在网络I/O,引入多线程能提高网络I/O处理速度。

Redis引入多线程后,有没有线程安全问题#

没有 Redis6.0只针对网络请求模块采用的是多线程,对于读写命令部分还是用的单线程,所以所谓的线程安全问题也就不存在了。

Redis6.0想要开启多线程,需要配置io-threads-do-reads参数为yes