Redis学习笔记—客户端通讯协议RESP

Redis制定了RESP(REdis Serialization Protocol,Redis序列化协议)实现客户端与服务端的正常交互,这种协议简单高效,既能够被机器解析,又容易被人类识别

发送命令格式

RESP的规定一条命令的格式如下,CRLF代表”\r\n”

*< 参数数量 > CRLF
$< 参数 1 的字节数量 > CRLF
< 参数 1> CRLF
...
$< 参数 N 的字节数量 > CRLF
< 参数 N> CRLF

以set hell world这条命令进行说明,参数数量为3个,因此第一行为:

*3

参数字节数分别是355,因此后面几行为:

$3
SET
$5
hello
$5
world

这样传输的格式就是:

*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n

返回结果格式

Redis的返回结果类型分为以下五种: - 状态回复:在RESP中第一个字节为”+” - 错误回复:在RESP中第一个字节为”-“ - 整数回复:在RESP中第一个字节为”:” - 字符串回复:在RESP中第一个字节为”$” - 多条字符串回复:在RESP中第一个字节为”*”