Redis学习笔记—客户端通讯协议RESP
程序员文章站
2022-05-19 10:50:54
...
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中第一个字节为”*”