通信协议
RESP 协议
1、Redis 是一个 CS 架构的软件,通信一般分两步(不包括 pipeline 和 PubSub)
(1)客户端(client)向服务端(server)发送一条命令
(2)服务端解析并执行命令,返回响应结果给客户端
(3)客户端发送命令的格式、服务端响应结果的格式必须有一个规范,这个规范就是通信协议
2、Redis 中采用的是 RESP(Redis Serialization Protocol)协议
(1)Redis 1.2 引入 RESP 协议
(2)Redis 2.0 中成为与 Redis 服务端通信的标准,称为 RESP2
(3)Redis 6.0 中,从 RESP2 升级到 RESP3 协议,增加更多数据类型,并且支持 6.0 新特性:客户端缓存
(4)目前默认使用 RESP2 协议
RESP2
1、通过首字节的字符,区分不同数据类型,常用的数据类型包括 5 种
2、单行字符串
(1)首字节是 +,后面跟上单行字符串,以 CRLF(\r\n)结尾
(2)例如:返回 OK:+OK\r\n
3、错误(Errors)
(1)首字节是 -,与单行字符串格式一样,只是字符串是异常信息
(2)例如:-Error message\r\n
4、数值
(1)首字节是 :,后面跟上数字格式的字符串,以 CRLF 结尾
(2)例如::10\r\n
5、多行字符串
(1)首字节是 $,表示二进制安全的字符串,最大支持 512MB
(2)如果大小为 0,则代表空字符串:$0\r\n\r\n
(3)如果大小为 -1,则代表不存在:$-1\r\n
6、数组
(1)首字节是 *,后面跟上数组元素个数,再跟上元素
(2)元素数据类型不限

浙公网安备 33010602011771号