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倍,到较慢的互联网连接至少提高了100倍。