📜  Redis管道

📅  最后修改于: 2020-12-02 01:23:09             🧑  作者: Mango

Redis管道

在了解流水线之前,首先要了解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脚本。使用执行服务器端大量工作所需的脚本,可以更有效地解决许多流水线用例。

脚本的主要优点是它可以以最小的延迟读取和写入数据。它使读取,计算,写入等操作变得非常快。

另一方面,流水线不使用此场景。在流水线中,客户端在调用写命令之前需要对读命令的答复。