千家信息网

Redis 协议的示例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍Redis 协议的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Redis实例运行于单独的进程,应用系统和Redis通过Redis协议进行交互。在Red
千家信息网最后更新 2026年11月01日Redis 协议的示例分析

这篇文章主要介绍Redis 协议的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Redis实例运行于单独的进程,应用系统和Redis通过Redis协议进行交互。在Redis协议之上,客户端和服务器可以实现多种典型的交互模式:串行的请求/响应模式、双工的请求/响应模式(pipeline)、原子化的批量请求/响应模式(事务)、发布/订阅模式、脚本化的批量执行(脚本模式)。

客户端/服务器协议

Redis的交互协议分为两部分:网络协议和序列化协议。

网络交互

Redis协议位于TCP连接之上,即客户端和Redis实例保持双工的连接。

客户端和服务器交互的内容是序列化后的相应类型的协议数据,服务器为每个客户端建立对应的连接,在应用层维护一系列状态保存在上图的connection中,connection间相互无关联。在Redis中,connection通过redisClient结构体实现。

序列化协议

在Redis中,协议数据分为不同的类型,每种类型的数据均以CRLF(\r\n)结束,通过数据的首字符区分类型。

inline command

这类数据表示Redis命令,首字符为Redis命令名的字符。

simple string

首字符为'+',后续字符为strig的内容,且该string不能包含'\r'或'\n'两个字符,最后以'\r\n'结束。

simple string本身不含转义,所以客户端的反序列化效率很高,直接将'+'和最后两个字节'\r\n'之间的内容拷贝即可。

bulk string

对于string本身含有'\r'或'\n'的情况,解法有两种:转义和长度自描述。转义反序列化效率低下,Redis采用的是长度自描述,称为bulk string。

bulk string的首字符为'$',紧随其后的是string数据的长度,'\r\n'之后紧跟着string的内容本身(可以包含包括'\r'和'\n'在内的特殊字符),最后以'\r\n'结束。

"$12\r\nhello\r\nworld\r\n" 这19个字节描述了hello\r\nworld这个两行的string。

对于""空字符串和null,通过'$'之后的数字进行区分:

  • "$0\r\n\r\n" 这6个字节表示空字符串

  • "$-1\r\n" 这5个字节表示null

error

Redis中error类型的数据的内容就是一个普通的string,但是和普通的string的区别是error的首字符是'-'。客户端直接通过首字符即可判断本次交互是否出错。

integer

以':'开头,紧跟着整形数字本身,最后以'\r\n'结尾。":13\r\n"表示整数13。

array

以'*'开头,紧跟着数组的长度,'\r\n'之后就是数组中每个元素序列化的数据。"*2\r\n+abc\r\n:9\r\n"表示["abc", 9]。

数组长度为0或者-1分别表示空数组或null。

数组元素本身也可以是数组,多级数组是树状结构,采用类似先序遍历的方式序列化。 "*2\r\n*2\r\n:1\r\n:2\r\n*1\r\n+abc\r\n"表示[[1, 2],["abc"]]。

C/S使用的协议数据类型

客户端发送给服务的类型:inline command、由bulk string组成的array。服务端发送给客户端的类型为除了inline command之外的所有类型,并根据客户端命令或者交互模式的不同进行确定。

以上是"Redis 协议的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

客户 数据 类型 客户端 内容 序列 数组 模式 首字 服务 长度 字符 字节 服务器 命令 转义 示例 分析 不同 普通 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司排名 北京路客互联网科技有限公司 互联网是不是新科技 深圳科技互联网 互联网科技公司有哪些 互联网高科技股票 银川新华互联网科技学校地址 成都玖崟互联网科技有限公司乐商圈怎么样 互联网科技产品 宁夏众和广鑫互联网科技有限公司 互联网和黑科技的看法 科技互联网大厂 深圳艾果互联网通讯科技 阿里互联网科技企业 上海科技产业互联网平台 米泉互联网科技专业怎么样 数字互联网科技有限公司 杭州科技互联网公司有哪些 河南商务圈互联网科技有限公司 颐高云石互联网科技 期待互联网科技 广州凡科互联网科技 博兴的互联网电子科技公司 移动互联网科技股 互联网科技研发水平 富国互联网科技002692 上海同邻互联网科技有限公司规模 互联网科技手机排行榜 上海万顺科技互联网有限公司招聘 保山互联网科技靠谱吗
0