Skip to content

Latest commit

 

History

History
11 lines (7 loc) · 615 Bytes

Redis为什么是单线程模型.md

File metadata and controls

11 lines (7 loc) · 615 Bytes

Redis为什么是单线程模型

1.Redis 是单线程的吗?

是,这里的单线程指的是 Redis 网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。

2.Redis 为什么设计成单线程的?

  • 绝大部分请求是纯粹的内存操作(非常快速)
  • 采用单线程,避免了不必要的上下文切换和竞争条件
  • 非阻塞 IO,内部采用 epoll,epoll 中的读、写、关闭、连接都转化成了事件,然后利用 epoll 的多路复用特性,避免 IO 代价。