Redis 6.0 HELLOコマンドを使用してRESP v 2およびRESP 3プロトコルを切り替え

3140 ワード

目次
1.RESPプロトコルとは
2.RESP 3実装のタイプ
RESP v 2の
RESP 3 
3.HELLOコマンドRESPプロトコルの切り替え

1.RESPプロトコルとは


RESP(Redis Serialization Protocol)は、Redisサービス側とクライアントとの間で通信するプロトコルである.
RESP 3は、RESP version 2の更新バージョンである.RESP v 2はほぼRedis 2.0からサポートされています(実は1.2でサポートされていますが、Redis 2.0はこのプロトコルのみをサポートする最初のバージョンです).
 

2.RESP 3実装のタイプ


RESP v 2の

  • Arrays:N個の他のタイプの秩序化集合
  • Blob string:バイナリセキュリティ文字列
  • Simple string:スペースを節約する非バイナリセキュリティ文字列
  • Simple error:スペースを節約する非バイナリセキュリティエラーコードとメッセージ
  • Number:符号付き64ビット範囲の整数
  • RESP 3 

  • Null:RESP v 2の*-1と$-1の代わりに空の値です.
  • Double:浮動小数点数
  • Boolean:trueまたはfalse
  • Blob error:バイナリセンシングエラーコードおよびメッセージ
  • Verbatim string:バイナリセキュリティ文字列.エスケープやフィルタリングを行わずに
  • を表示する必要があります.
  • Map:キー値ペアの規則化されたセット.キーおよび値は、他の任意のRESP 3タイプ
  • であってもよい
  • Set:N個の他のタイプの無秩序集合
  • Attribute:Mapと似ています.
  • Push:Arrayと似ています.
  • Hello:Mapと似ています.
  • は、クライアントがサービス側と接続を確立するときにのみ使用される.
  • Big number:数字タイプでは表せない大きな数字
  •  

    3.HELLOコマンドRESPプロトコルの切り替え


    HELLO [AUTH ]

    HELLO 2またはHELLO 3(RESPプロトコル2または3を切り替える)
    127.0.0.1:6379> HELLO 4
    (error) NOPROTO unsupported protocol version
    127.0.0.1:6379> HELLO 1
    (error) NOPROTO unsupported protocol version
    127.0.0.1:6379> HELLO 3
    1# "server" => "redis"
    2# "version" => "6.0.4"
    3# "proto" => (integer) 3
    4# "id" => (integer) 4 
    5# "mode" => "standalone"
    6# "role" => "master"
    7# "modules" => (empty array)

    HELLO 2+AUTH(RESPプロトコルを切り替え認証ユーザを切り替える)
    //        
    127.0.0.1:6379> HELLO 2 AUTH default nopass
     1) "server"
     2) "redis"
     3) "version"
     4) "6.0.4"
     5) "proto"
     6) (integer) 3
     7) "id"
     8) (integer) 4
     9) "mode"
    10) "standalone"
    11) "role"
    12) "master"
    13) "modules"
    14) (empty array)
    
    //     helloworld   
    127.0.0.1:6379> HELLO 2 AUTH helloworld mypass
    1# "server" => "redis"
    2# "version" => "6.0.4"
    3# "proto" => (integer) 3
    4# "id" => (integer) 4
    5# "mode" => "standalone"
    6# "role" => "master"
    7# "modules" => (empty array)

    戻るMapの説明
  • 「server」=>「redis」//サービス名
  • 「version」=>「6.0.4」//バージョン番号
  • 「proto」=>(integer)3//サポートされている最高プロトコル
  • 「id」=>(integer)4//クライアント接続ID
  • 「mode」=>「standalone」//モード:「standalone」>「sentinel」>「cluster」
  • 「role」=>「master」//「master」または「replica」
  • 「modules」=>(empty array)/ロードされたモジュールリスト
  • RESP v 2とRESP 3のHELLOコマンドの結果を比較すると、RESP 3の表示効果がより友好的であることがわかります.