请求格式
统一请求协议格式
*<number of arguments> CR LF
$<number of bytes of argument 1> CR LF
<argument data> CR LF
...
$<number of bytes of argument N> CR LF
<argument data> CR LF
例如:
*3\r\n$3\r\nSET\r\n$5\r\nmykey\r\n$7\r\nmyvalue\r\n
内联命令请求格式
说明:简单命令其参数用空格分割字符串。非二进制安全
例如:
C: PING
S: +PONG
回复格式
Redis用不同的回复类型回复命令。它可能从服务器发送的第一个字节开始校验回复类型
单行回复(Simple string)
说明:状态回复(或者单行回复)以“+”开始以“\r\n”结尾的单行字符串形式
例如:"+OK\r\n"
错误消息(Errors)
说明:错误回复发送类似于状态回复。唯一的不同是第一个字节用“-”代替“+”
错误回复仅仅在一些意料之外的事情发生时发送,例如:如果你试图执行一个操作来应付错误的数据类型,或者如果命令不存在等等。所以当收到一个错误回复时,客户端将会出现一个异常
整型数字 (Integers)
说明:只是用CRLF结尾字符串来表示整型,用一个字节的“:”作为前缀。例如:“:0\r\n”,或者“:1000\r\n”是整型回复。
批量回复(Bulk String)
说明:批量回复被服务器用于返回一个单二进制安全字符串。
例如:"$6\r\nfoobar\r\n"
如果请求的值不存在,批量回复将使用特殊的值-1来作为数据长度
例如:$-1
多个批量回复 (Array)
说明:同统一请求协议格式
使用*-1表示null