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接続を確認します。 値 redis で tutorial という名前の文字列を設定しました。 後で、そのキーの値を取得し、訪問者の数を3回増やします。 その結果、すべてのコマンドがRedisに1回送信され、Redisがすべてのコマンドの出力を1つのステップで提供することがわかります。
パイプライン処理の利点
この手法の利点は、プロトコルのパフォーマンスが大幅に向上することです。 パイプライン化によって得られる高速化は、ローカルホストへの接続の5倍から、低速のインターネット接続で少なくとも100倍までの範囲です。