入力の表記を合わせる
初期設定では文字列の\rと\nをCRLFバイトに変換します。テキスト以外のbulkはHexに切り替えます。単独のLFを自動修正しません。
- 長さは文字数ではなくUTF-8バイト数です。
プロトコル・バイナリシリアライズ
エスケープされたRESPテキストまたはHexバイトを入力し、Redisへの接続なしでフレームを調べます。
RESPデータを入力するか、例を選んでください。
ブラウザー内で解析し、Redisへ接続・送信しません。
RESPデータを入力するか、例を選んでください。
Redisのログに$5や*3が見えても、クライアントの表示だけでは長さのずれを特定できません。Redis RESP解析ではプレフィックスから各値のバイト範囲までたどり、通信データそのものを検査できます。
静的な通信データを型と境界を残したまま読み解きます。
Redis RESP解析はRESP3の各チャンクの宣言バイト長と終端を確認してから連結します。結果にもチャンク数を残し、終端がない入力を完成した値として扱いません。
バイナリbulkはHex、mapは順序付きのキーと値、属性は後続の値に付けて出力します。通常のJSONオブジェクトに押し込むと失われる違いが見えます。
初期設定では文字列の\rと\nをCRLFバイトに変換します。テキスト以外のbulkはHexに切り替えます。単独のLFを自動修正しません。
自動設定はRESP2とRESP3の共通型を受け入れ、RESP3固有の型を示します。RESP2指定時は固有のプレフィックスを拒否します。
型ツリーのバイト範囲と宣言長を確認します。最上位の文字列配列はコマンドらしい形を表示しますが、実行可能性は判定しません。
Redis通信プロトコルのnull bulk、空bulk、配列、map、push、サーバーエラー値を区別します。エラー返信を構文エラーと混同しません。
宣言されたbulkの長さ、実際のUTF-8バイト数、末尾のCRLFが合わなければ、最初の位置をバイトオフセットと入力行で示します。
パイプラインの複数フレームを順番に表示します。配列の先頭がコマンド名らしくても、Redisが受理するとは断言しません。
RESPパーサーの出力はバイナリのHex、大きな整数の10進文字列、mapの順序付き項目、属性を保持します。
先頭バイトが型を示し、CRLFと長さが境界を決めます。入力したデータの各値を型ツリーで確認し、宣言値と実際の範囲を比べられます。
最上位の文字列配列なら、コマンド名と引数の数を表示します。形式を見る機能であり、サーバーへの送信やコマンドの妥当性判定はしません。
map、真偽値、pushなどRESP3固有の型を検出できます。共通型だけなら、接続でどちらを選んだかは分かりません。
いいえ。$の後はバイト長です。日本語の文字はUTF-8で複数バイトになるため、画面に見える字数と一致しないことがあります。
完全なRESPフレームを連結した入力は順に表示します。途中で切れた値はエラーになり、不完全な結果を完成品として書き出しません。
疑問が残っていますか?
クライアントを直す前に、最初にずれたバイトを確認してください。Redis RESP解析は完全に読めた結果だけを書き出せます。
処理はブラウザー内だけで行います。