数据增删改查用单线程处理,线程安全。
Redis 6.0 中耗时的 Socket 读取、请求解析、单独用一个线程来处理,即:网络 IO 是多线程的。

多线程

Redis3.0 中的 BIO 线程:文件关闭、AOF 缓冲数据刷新到磁盘,以及清理对象。

多进程

BGSAVE 用于快照持久化,会 fork 出一个子进程去处理。

为什么单线程

因为 Redis 是内存操作,CPU 不是 Redis 的瓶颈;
单线程避免频繁多线程上下文切换的性能问题;
Redis 采用非阻塞的 io 多路复用机制;

IO 多路复用

单线程或单进程同时监测多个文件描述符是否可以执行 IO 操作的能力。