几乎所有的主流编程语言都有Redis的客户端,原因有二。
第 一,客户端与服务端之间的通信协议是在TCP协议之上构建的。
第二, Redis制定了RESP(REdis Serialization Protocol,Redis序列化协议)实现客 户端与服务端的正常交互,这种协议简单高效,既能够被机器解析,又容易 被人类识别。例如客户端发送一条set hello world命令给服务端,按照RESP 的标准,客户端需要将其封装为如下格式(每行用\r\n分隔):
*3
$3
SET
$5
hello
$5
world
这样Redis服务端能够按照RESP将其解析为set hello world命令,执行后 回复的格式如下:
+OK
可以看到除了命令(set hello world)和返回结果(OK)本身还包含了 一些特殊字符以及数字,下面将对这些格式进行说明。
1.发送命令格式
RESP的规定一条命令的格式如下,CRLF代表"\r\n"。
*<参数数量> CRLF
$<</