三、Redis单线程架构

Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。

1.单线程模型

1.1Redis客户端与服务端请求过程
三、Redis单线程架构

1.2所有命令在一个队列里排队等待被执行
三、Redis单线程架构

2.为什么单线程还能这么快

2.1存内存访问
Redis将所有数据放在内存中,内存的响应时长大约为100纳秒,这是Redis达到每秒万级别访问的重要基础
2.2非阻塞I/O
Redis使用epoll作为I/O多路复用技术的实现,Redis自身事件处理模型将epoll的连接、读写、关闭都转为事件,不在网络I/O上浪费过多的时间
2.3避免竟态产生
单线程避免了线程切换和竟态产生的消耗