https://zouquchen.github.io/pages/026230/#_3-redis没用使用多线程-为什么不使用多线程

多线程存在死锁、线程上下文切换等问题

虽然说 Redis 是单线程模型,但是 Redis 在 4.0 之后的版本就已经加入对多线程的支持。不过 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令,使用这些命令就会使用主处理之外的其他程序来异步处理。

大体上,Redis6.0 之前还是单线程处理。因为:

  1. 单线程编程容易并且容易维护
  2. Redis 的性能瓶颈不在 CPU,主要在内存和网络
  3. 多线程会存在死锁、线程上下文切换等问题,甚至影响性能