Redis是单线程还是多线程

Redis 采用的是单线程模型。通常说得单线程,主要指的是 Redis 对外提供的键值存储服务的主要流程是单线程的,即网络 I/O 和数据读写是由单个线程来完成的。这样设计可以避免多线程之间的竞争条件和锁开销,提高了访问共享数据的效率。
然而,除了对外提供的键值存储服务,Redis 在某些功能上会使用额外的线程来执行,比如持久化、异步删除和集群数据同步等。这些功能需要在后台执行,不参与主要的网络 I/O 和数据处理。因此,严格来说,Redis 并不是完全单线程。

1