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倍不等。