当前位置: 首页 > news >正文

Redis——通信协议

目录

1.RESP协议

2.RESP协议——数据类型

3.总结


1.RESP协议

Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和pubsub):


1.客户端(client)向服务端(server)发送一条命令
2.服务端解析并执行命令,返回响应结果给客户端
因此客户端发送命令的格式,服务端响应结果的格式必须有一个规范,这个规范就是通信协议。


而在redis中采用的是RESP(redis serialization prot)协议:

  • Redis1.2版本引入了resp协议
  • Redis2.0版本中成为与redis服务端通信的标准,称为RESP2
  • Redis6.0版本中,从RESP2开级到了RESP3协议,增加了更多数据类型并且支持6.0的新特性一客户端缓存

但目前,为了兼容性问题,默认使用的依然时RESP2协议,也是我们要学习的协议版本(以下进程RESP)

2.RESP协议——数据类型

在RESP中,通过首字节的字符来区分不同数据类型,常用的数据类型包括5种:

单行字符串:首字节是'+',后面跟上单行字符串,以CRLF("\r\n")结尾。例如返回"ok": "+ok\r\n"(二进制不安全)
错误(Errors):首字节是'-',与单行字符串格式一样,只是字符审是异常信息,例如:"-Errormessage\r\n"
数值:首字节是':',后面跟上数字格式的字符串,以CRLF结尾。例如:":10\r\n"
多行字符串:首字节是'$',表示二进制安全的字符串,最大支持512MB(二进制安全)

  • 如果大小为0,则代表空字符串:"$0/r\n\r\n"
  • 如果大小为-1,则代表不存在:"$-1/r\n" 字符串占用

数组:首字节是‘*’,后面跟上数组元素个数,再跟上元素,元素数据类型不限。

 

3.总结

RESP 通信协议以其简洁、高效和易读的特点,成为了分布式系统和数据库领域的重要通信协议。无论是 Redis 开发者,还是从事分布式系统设计的工程师,掌握 RESP 协议的原理和应用都具有重要意义。

相关文章:

  • 【大模型】单选数据集制作举例
  • Java技术栈 —— 网络带宽受限,图片预览加速
  • 5.4.1 Password控件的Password属性绑定问题
  • 06 GE Modifier
  • 【AI论文】对人工智能生成文本的稳健和细粒度检测
  • 性价比超高的 英伟达Tesla T4卡 如何解决散热问题?
  • Ubuntu 22.04 更换 Nvidia 显卡后启动无法进入桌面问题的解决
  • OpenAPI 3.0学习笔记
  • 【Redis】了解Redis
  • Java Web项目(一)
  • Java29:Spring MVC
  • 积木报表查询出现jdbc.SQLServerException: 对象名 ‘user_tab_comment 的解决方法
  • Federated Weakly Supervised Video Anomaly Detection with Multimodal Prompt
  • SpringBoot集成Kafka详解
  • 【锂电池SOH估计】SVM支持向量机锂电池健康状态估计,锂电池SOH估计(Matlab完整源码和数据)
  • 零点、驻点、拐点、极值点、最值点的定义、几何意义、求解方法
  • 2025年4月19日-得物算法岗春招笔试题-第二题
  • 项目预期管理:超越甘特图,实现客户价值交付
  • The_Planets_Earth靶场笔记(VulnHub)
  • 996引擎-拓展变量:物品变量
  • 在现代东京,便利店如何塑造了饮食潮流、生活方式和日本社会
  • 中保协:当前普通型人身保险产品预定利率研究值为2.13%
  • 比起追逐爆款,动画行业更需要打开思路“重塑肉身”
  • 中印尼举行外长防长“2+2”对话机制首次部长级会议
  • 钱理群|直面衰老与死亡
  • 一季度浙江实现生产总值22300亿元,同比增长6.0%