通信协议

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)元素数据类型不限

posted @   半条咸鱼  阅读(239)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示