简介
Redis客户端和服务端使用了RESP(REdis Serialization Protocol)协议,优点为:
- 实现简单
- 解析速度快
- 可读性好
请求协议
请求协议的统一格式
*<参数个数> CR LF
$<参数1字节长度> CR LF
<参数1> CR LF
$<参数2字节长度> CR LF
<参数2> CR LF
...
$<参数N字节长度> CR LF
<参数N> CR LF
例如:
redis command: *3\r\n$3\r\nSET\r\n$4\r\nname\r\n$4\r\ntemp\r\n
回复
回复首字节
redis服务器的回复首字节用来区分不同的回复信息。
首字节 | 含义 |
---|---|
+ | 用单行回复 |
- | 错误消息 |
: | 整型数字 |
$ | 批量回复 |
* | 多个批量回复 |
单行回复
请求:hmset zhangsan addr beijing phone 0108888888
*6
$5
hmset
$8
zhangsan
$4
addr
$7
beijing
$5
phone
$10
0108888888
回复 OK
+OK
多行回复
请求:hgetall zhangsan
*2
$7
hgetall
$8
zhangsan
回复:1) addr 2)beijing 3)phone 4)0108888888
*4
$4
addr
$7
beijing
$5
phone
$10
0108888888
错误回复
请求一个不存在的键:get tttt
*2
$3
get
$4
tttt
回复:nil
$-1
整型回复
请求:incr index
*2
$4
incr
$5
index
回复:1
:1
批量回复
请求get name
*2
$3
get
$4
name
回复:temp
$4
temp
网友评论