第十讲:Redis 高性能IO模型:为什么单线程Redis能那么快?
首先,我要和你理清一个事实,我们通常说,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。
一:Redis 为什么用单线程?
要更好地理解 Redis 为什么用单线程,我们就要先了解多线程的开销。
比如一个共享的数据结构。当有多个线程要修改这个共享资源时,为了保证共享资源的正确性,就需要有额外的机制进行保证,而这个额外的机制,就会带来额外的开销。
二:单线程 Redis 为什么那么快?
Linux 中的 IO 多路复用机制是指一个线程处理多个 IO 流,Redis 线程不会阻塞在某一个特定的监听或已连接套接字上,也就是说,不会阻塞在某一个特定的客户端请求处理上;

浙公网安备 33010602011771号