通信协议
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)元素数据类型不限
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战