Redis Pipeline

スポンサーリンク

Redisのパイプラインについてまとめます。通常の処理方式ではRedis Serverが応答を返してから次のコマンドを発行しますが、パイプラインを使用すると応答を待たずに処理をしますので、RTT(Round Trip Time)の観点で有利になり高速な処理を実現できます。

前提

公式ドキュメント

参考になる公式ドキュメントを以下に示します。

動作確認済環境

  • Rocky Linux 8.6
  • Redis 5.0.3

PIPELINE

概要

以下のように3つの値を編集する操作を例に挙げます。

127.0.0.1:6379> SET key01 value01
OK
127.0.0.1:6379> SET key02 value02
OK
127.0.0.1:6379> SET key03 value03
OK
127.0.0.1:6379> 

このような操作の場合、「SET key01 value01」コマンドの「OK」応答が返ってから、次のコマンドが発行できます。これをシーケンス図で表すと以下のようになります。

Pipeline シーケンス 01

他方、Redis ClientとRedis Server間をパイプで接続すると、以下のように複数コマンドをまとめて発行する事ができます。このような操作の場合、「OK」応答を待たずに次にコマンドを発行できるので、待ち時間(正確に言えばRound Trip Time)の観点で有利になります。

Pipeline シーケンス 02

パイプライン

パイプラインによるコマンド操作をするには、Redis ClientとRedis Serverをパイプで接続します。コマンドを複数発行する場合は、改行コード\R\Nで区切ってください。

Linuxでncコマンドを使って操作する例は以下のようになります。

echo "SET key01 value01
SET key02 value02
SET key03 value03" | nc -C localhost 6379

この操作の実行ログは以下のようになります。

[root@linux010 ~]# echo "SET key01 value01
> SET key02 value02
> SET key03 value03" | nc -C localhost 6379
+OK
+OK
+OK
タイトルとURLをコピーしました