Redis精通系列——Pipeline(管道)

Redis精通系列——Pipeline(管道)_第1张图片

2、深究pipeline


在上述简介中,提到了管道技术优化的是网络传输的耗时时间,这里通过Redis客户端-服务端的一次完整的网络请求来回,深入探索pipeline的本质。

Redis精通系列——Pipeline(管道)_第2张图片

  1. 客户端调用write将数据写入操作系统内核(kernel)为socket连接分配的发送缓冲区(send buffer)

  2. 客户端操作系统内核将发送缓冲区(send buffer)的数据发送到网卡(NIC)

  3. 网卡(NIC)将数据通过路由(route)将数据送到Redis服务器机器网卡(NIC)

  4. 服务器操作系统内核(kernel)将网卡(NIC)接收的数据,写入内核为socket分配的接收缓冲区(recv buffer)

  5. 服务器进程从接收缓冲区调用read读取数据,并进行数据逻辑处理

  6. 数据处理完成之后,服务器进程调用write将响应数据写入操作系统内核为socket分配的发送缓冲区

  7. 操作系统内核将发送缓冲区的数据发送到服务器网卡

  8. 服务器网卡将响应数据通过路由发送到客户端网卡

  9. 客户端网卡接收响应数据

  10. 客户端操作系统内核读取网卡接收到的服务器响应数据,并写入操作系统为socket连接分配的介绍缓冲区

  11. 客户端进程调用read从接收缓冲区中读取

你可能感兴趣的:(程序员,redis,php,数据库)