Redis 通信プロトコル応答

Redis通信プロトコルとは何ですか

RESPとはREdis Serialization Protocolの略でredis専用のシリアル化プロトコルで、
実際にはredisバージョン1.2から登場したプロトコルですが、redis2.0で最終的にredis通信プロトコルの標準となりました。

Redis通信プロトコル(RESP)の形式

Redis 通信プロトコルは最初に複数の行に分割され、各行は \r\n 行で終わります。各行にはメッセージヘッダーがあり、次の 5 種類に分類されます。

+表示一个正确的状态信息,具体信息是当前行+后面的字符。
-表示一个错误信息,具体信息是当前行-后面的字符。
* 表示消息体总共有多少bulk行,不包括当前行,*后面是具体的行数。
$表示下一行数据长度,不包括换行符长度\r\n,后面则是对应的长度的数据。
:表示返回一个数值,:后面是相应的数字节符。

例1

コマンド「set aqin 1」は一般的に
*3\r\n$3\r\nset\r\n$4\r\naqin\r\n$1\r\n1\r\n普通の人には理解できません。便宜上、理解するために
上記の例をフォーマットします

*3\r\n        -- 这个命令包含3个(bulk)字符串
$3\r\n        -- 第一个bulk string有3个字节
set\r\n       -- 第一个bulk string是set
$4\r\n        -- 第二个bulk string有4个字节
aqin\r\n      -- 第二个bulk string是agan
$1\r\n        -- 第三个bulk string有1个字节
1\r\n         -- 第三个bulk string是1

実行すると以下が返されます:

+OK\r\n 

例2

コマンド "get aqin":
*2\r\n$3\r\nget\r\n$4\r\naqin\r\nつまり
:

*2\r\n     -- 这个命令是2个bulk字符串的数组
$3\r\n     -- 第一个bulk字符串有3个字节: get
get\r\n
$4\r\n     -- 第二个bulk字符串有4个字节: aqin
aqin\r\n

テストと検証

Telnet を使用する、接続方法は次のとおりです:
Telnet
接続が成功した後、redis がパスワードを設定している場合は、パスワード認証も必要です。この時点で、redis との通信は実際に確立されており、redis コマンドの auth 認証を使用できます。認証コマンド
:
キー

bodeMacBook-Pro:~ bo$ telnet xx.xx.xx.xx:xxxx
Trying xx.xx.xx.xx
Connected to xx.xx.xx.xx
Escape character is '^]'.
auth aqin
+OK
keys *
*13
$4
key9
$4
aqin
$4
key4
$4
key3
$4
key6
$4

各コマンドは RESP 形式を返します (\r\n は表示されず、改行として反映されます)。

コマンド: set aqin 1

set aqin 1
+OK

コマンド: aqin を取得

get aqin
$1
1

Telnet を使用して RESP 形式で「get agan」を実行します: *2\r\n$3\r\nget\r\n$4\r\naqin\r\n

*2
$3
get
$4
aqin 
$1
1

おすすめ

転載: blog.csdn.net/yaoyaochengxian/article/details/131505340