Redis-pipelining

提供:Dev Guides
移動先:案内検索

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接続を確認します。 値 redistutorial という名前の文字列を設定しました。 後で、そのキーの値を取得し、訪問者の数を3回増やします。 その結果、すべてのコマンドがRedisに1回送信され、Redisがすべてのコマンドの出力を1つのステップで提供することがわかります。

パイプライン処理の利点

この手法の利点は、プロトコルのパフォーマンスが大幅に向上することです。 パイプライン化によって得られる高速化は、ローカルホストへの接続の5倍から、低速のインターネット接続で少なくとも100倍までの範囲です。