更多技术文章,请关注我的个人博客 www.immaxfang.com 和小公众号
Max的学习札记
。
Redis 客户端和服务端之间是采用 TCP 协议进行通信的,是基于 Request/Response 这种一问一答的模式,即请求一次响应一次。
普通模式
我们先来看下普通模式下,一条 Redis 命令的简要执行过程:
- 客户端发送一条命令给 redis-server,阻塞等待 redis-server 应答
- redis-server 接收到命令,执行命令
- redis-server 将结果返回给客户端
下面我们来简要了解下一个完整请求的交互过程。
- 客户端调用 write() 将消息写入操作系统为 socket 分配的 send buffer 中
- 操作系统将 send buffer 中的内容发送到网卡,网卡通过网关路由把内容发送到服务器网卡
- 服务器网卡将接受到的消息写入操作系统为 socket 分配的 recv buffer
- 服务器进程调用 read() 从 recv buffer 中读取消息进行处理
- 处理完成之后,服务器调用 write() 将