首页 > 数据库 >redis自学(22)Redis是单线程还是多线程?

redis自学(22)Redis是单线程还是多线程?

时间:2024-03-20 14:58:43浏览次数:38  
标签:22 单线程 Redis 线程 引入 多线程 CPU

Redis是单线程还是多线程?

Redis到底是单线程还是多线程?

  •  如果仅仅聊Redis的核心的业务处理部分(命令处理),答案是单线程
  •  如果是聊整个Redis那么答案是对线程

在Redis版本迭代过程中,在两个重要的时间节点上引入了多线程的支持:

  • Redis v4.0:引入多线程异步处理一些耗时较长的任务,例如异步删除命令unlink
  • Redis v6.0:在核心网络模型中引入多线程,进一步提高对于多核CPU的利用率

为什么Redis要选择单线程?

  •  抛开持久化不谈,Redis是纯内存操作,执行速度非常快,它的性能瓶颈是网络延迟而不是执行速度,因此多线程并不会带来巨大的性能提升。(相比纯内存操作,IO多路复用只是削微的提升了速度)
  •  多线程会导致过的上下文切换,带来不必要的开销(单核的情况下,即使是后来加入了多线程,也是跟CPU的核数对应的,最多是1到2倍)
  •  引入多线程会面临线程安全问题,必然要引入线程锁这样的安全手段,实现复杂度增高,而且性能也会大打折扣

标签:22,单线程,Redis,线程,引入,多线程,CPU
From: https://www.cnblogs.com/bulesea/p/18085207

相关文章