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

Posted 爱锅巴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中第一个字节为”*”

以上是关于Redis学习笔记—客户端通讯协议RESP的主要内容,如果未能解决你的问题,请参考以下文章

一文彻底理解Redis序列化协议,你也可以编写Redis客户端

Redis系列:Redis的RESP协议详解

RedisRedis序列化协议(RESP)

一文带你玩转 Redis 的 RESP 协议 !

一文带你玩转 Redis 的 RESP 协议 !

一文带你玩转 Redis 的 RESP 协议 !