Redis 为什么单线程还这么快?
Redis 面试题发布于
一、核心原因
- 纯内存操作:数据在内存中,访问速度极快。
- I/O 多路复用:用 epoll 处理大量并发连接,单线程也能处理高并发。
- 避免上下文切换:单线程没有线程切换开销,也没有锁竞争。
二、Redis 6.0 多线程
Redis 6.0 引入多线程,但只用于网络 I/O 的读写,命令执行仍是单线程。原因是瓶颈在网络 I/O 而非 CPU。
三、适用场景
- 适合高并发、数据量适中、延迟敏感的场景。
- 不适合大 key 操作(如 hgetall 百万级 hash),会阻塞主线程。