内容简介:最近要搞搞redis的通信协议,先阅读一下官方文档,记录一下。通常redis收到请求之后会立刻响应,但是有两种情况属于例外:每次请求的第一个字节代表着本次请求内容类型:
最近要搞搞 redis 的通信协议,先阅读一下官方文档,记录一下。
应答模型
通常redis收到请求之后会立刻响应,但是有两种情况属于例外:
-
使用pipeling的时候
-
使用pub/sub的时候
协议
每次请求的第一个字节代表着本次请求内容类型:
-
+
代表简单字符串,例如OK
,PING
。 -
-
代表出错,目前-
后字符一直到空格为止代表错误类型,但这并不是此协议的一部分,只是一种偏好。 -
:
代表Integers,例如:1000\r\n
-
$
代表Bulk Strings,例如foobar
将会encode成$6\r\nfoobar\r\n
,而空字符串将会encode成$0\r\n\r\n
-
NULL将会表示成
$-1\r\n
-
NULL将会表示成
-
*
代表Array,第一个字符是*
,其后紧接array的数据成员个数,然后接一个\r\n
,接下来就是各成员具体表示。例如返回一个array,其成员为foo
,bar
,将会被encode成:
*2\r\n$3\r\nfoo\r\n$3\r\nbar\r\n
- 空数组将会表示成 `*-1\r\n`
每次请求都需要以 \r\n
结尾。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。