本文概述
在了解管道之前, 首先要了解Redis的概念:
Redis是一个支持请求/响应协议的TCP服务器。在Redis中, 分两个步骤完成请求:
- 客户端通常以阻塞的方式向服务器发送查询, 以获取服务器响应。
- 服务器处理命令, 并将响应发送回客户端。
什么是管道
管道化使客户端可以将多个请求发送到服务器, 而根本不用等待答复, 最后一步即可读取答复。
例子
我们来看一个Redis管道的例子。在此示例中, 我们将一次向Redis提交多个命令, Redis将在单个步骤中提供所有命令的输出。
打开Redis终端并使用以下命令:
(echo -en "PING\r\n SET sssit javatraining\r\n GET sssit\r\n INCR visitor\r\n INCR visitor\r\n INCR visitor\r\n"; sleep 10) |
nc localhost 6379
这里:
- PING命令用于检查Redis连接。
- 设置了一个名为” sssit”的字符串, 其值为” javatraining”。
- 得到了关键值, 并增加了访问者人数三次。
你可以看到每次值增加。
管道的优势
Redis管道的主要优点是可以提高Redis的性能。由于可以同时执行多个命令, 因此可以大大提高协议性能。
管道与脚本
Redis 2.6或更高版本中提供了Redis脚本。使用执行服务器端所需的大量工作的脚本, 可以更有效地解决许多管道用例。
脚本的主要优点是它可以以最小的延迟读取和写入数据。它使读取, 计算, 写入等操作变得非常快。
另一方面, 管道不使用此场景。在管道中, 客户端在调用写命令之前需要对读命令的答复。
评论前必须登录!
注册