所有的网络通讯都需要双方遵守一致的约定才可以互联互通。Redis协议在以下几点之间做出了折衷:实现简单、计算机解析速度快、具有一定的可读性。网络层Redis在TCP端口6379上侦听传入连接。当客户端连接到达时,Redis服务器会创建一个TCP连接。客户端和服务器之间传输的每个Redis命令或数据都以\r\n结尾。要求Redis接收由不同参数组成的命令。一旦收到命令,就会立即处理并响应给客户端。新的统一请求协议Redis1.2引入了新的统一协议,在Redis2.0中,它成为与Redis服务器通信的标准方式。在这个统一协议中,所有发送到Redis服务器的参数都是二进制安全的。一般形式如下:*CRLF$CRLFCRLF...$CRLFCRLF例子:?~nclocalhost6379keys**2$18user:sign:5:202101$18seckill_vouchers:6上面的命令看起来像一个单引号字符串,因此您可以在查询中看到每个字节的确切值:"*2\r\n$18\r\nuser:sign:5:202101\r\n$18\r\nsekill_vouchers:6\r\n"在Redis响应中也使用这种格式。批量回复时,此格式用于每个参数。实际的统一请求协议是使用Redis返回列表项,调用Multi-bulkreply。只是N个不同的批量回复,前缀为*\r\n,后跟参数数量(批量回复)。ResponseRedis以不同的响应类型回复命令。它可以从服务器发送的第一个字节开始检查回复类型:单行响应响应的第一个字节将是+setjavaedge+OK错误消息响应的第一个字节是-keys*-ERRunknowncommand`keys*`,withargsbeginningwith:第一个字节整数响应的第一个字节将是:批响应的第一个字节将是$keys**2$18user:sign:5:202101$18seckill_vouchers:6批响应的第一个字节一个字节将是*