Redis 管道(pipelining)



  • 管道

    Redis在已配置的侦听TCP端口和Unix套接字(如果已启用)上接受客户端的连接。接受新的管道后,将执行以下操作-
    • 由于Redis使用多路复用和非阻塞I/O,因此客户端套接字处于非阻塞状态。
    • 设置TCP_NODELAY选项是为了确保我们的连接没有延迟。
    • 创建一个可读文件事件,以便Redis能够在套接字上读取新数据后立即收集客户端查询。
  • 最大客户数

    Redis是一个TCP服务器,并支持请求/响应协议。在Redis中,通过以下步骤完成请求-
    • 客户端向服务器发送查询,并通常以阻塞的方式从套接字中读取服务器的响应。
    • 服务器处理命令并将响应发送回客户端。
  • 管道的含义

    管道的基本含义是,客户端可以完全不等待答复就将多个请求发送到服务器,并最终在一个步骤中读取答复。
    例如:
    要检查Redis管道,只需启动Redis实例并在终端中键入以下命令。
    $(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR 
    visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379  
    +PONG 
    +OK 
    redis 
    :1 
    :2 
    :3 
    
    在上面的示例中,我们将使用PING命令检查Redis连接。我们设置了一个名为tutorial的字符串,其值为redis。随后,我们获得该键值并将访问者数量增加三倍。结果,我们可以看到所有命令都一次提交给Redis,Redis在一个步骤中提供了所有命令的输出。
  • 管道的好处

    这种技术的好处是大大提高了协议的性能。通过管道获得的速度提高范围从连接到本地主机的5倍到较慢的internet连接的至少100倍不等。