1. Redis 客户端-客户端通信协议

  • 使用TCP协议
  • 定制了RESP(Redis Serialization Protocol)序列化协议

协议格式

请求格式(换行符使用\r\n):

1
2
3
4
5
6
7
*3
$3
SET
$5
hello
$5
world

返回格式:

1
+OK

格式说明

1
2
3
4
*<参数数量>CRLF
$<参数1字节数>CRLF
<参数1>CRLF
...

实际是字符串:
*3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n

返回第一个字节为

  • +,状态回复,如set hello world
  • -,错误回复,命令错误
  • :,整数回复,如incr a
  • $,字符串回复,如get hello
  • *,多条字符串回复,如mget hello a

使用nc命令来查看原始返回

ncncat的缩写,安装运行命令yum install -y nc,实际安装包名为:nmap-ncat

  • 连接redis-server
    nc 127.0.0.1 6666
  • 发送命令
    set hello world
  • 收到返回
    +OK
  • 发送命令
    get hello
  • 收到返回
    1
    2
    $5
    world