首页 > 数据库 >redis自学(24)RESP协议

redis自学(24)RESP协议

时间:2024-03-25 16:13:03浏览次数:24  
标签:24 字节 redis RESP Redis 字符串 数据类型 服务端

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

① 客户端(client)向服务端(server)发送一条命令

② 服务端解析并执行命令,返回响应结果给客户端

因此客户端发送命令的格式、服务端相应结果的格式必须有一个规范,这个规范就是通讯协议。

而在Redis中采用的是RESP(Redis Serialization Protocol)协议:

  •  Redis 1.2版本引入了RESP协议
  •  Redis 2.0版本中成为与Redis服务端通信的标准,成为RESP2
  •  Redis 6.0版本中,从RESP2升级到了RESP3协议(两个协议兼容性差),增加了更多数据类型并且支持6.0的新特性--客户端缓存

但目前,默认使用的依然是RESP2协议,也就是当前要学习的版本。

RESP协议-数据类型

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

  •  单行字符串:首字节是“+”,后门跟上单行字符串,以CRLF(“\r\n”)结尾。例如返回“OK”:“+OK\r\n”(和SDS一样,\r\n不能出现在字符串中间,是二进制不安全的),常见于服务端返回的结果
  •  错误(Errors):首字节是“-”,与单行字符串格式一样,只是字符串是异常信息,例如:“-Error message\r\n”,一般情况下,是服务端响应的结果
  •  数值:首字节是“:”,后面跟上数字格式的字符串,以CRLF结尾。例如“:10\r\n”
  •  多行字符串:首字节是“$”,表示二进制安全的字符串,最大支持521MB:

如果大小为0,则代表空字符串:“$0\r\n\r\n”

如果大小为-1,则代表不存在:“$-1\r\n”

 

 

  •  数组:首字节是“*”,后面更上数组元素个数,再跟上元素,元素数据类型不限:

 

 

这是一个发送set的redis命令

 

 

标签:24,字节,redis,RESP,Redis,字符串,数据类型,服务端
From: https://www.cnblogs.com/bulesea/p/18094642

相关文章

  • InDesign 2024:创意不熄火,设计不止步mac/win版
    InDesign2024,不仅仅是一个设计软件更新,它更是设计界的一次革命性飞跃。这款全新的设计软件将为您打开前所未有的创意大门,让您在设计的海洋中畅游无阻。→→↓↓载InDesign2024mac/win版 InDesign2024以其卓越的性能和稳定性,确保设计师在处理各种复杂设计任务时都能游刃有......
  • 20240325每日一题题解
    20240325每日一题题解Problem给出一个整数\(a\)和一个正整数\(n\),求乘方\(a^n\)。输入一行,包含两个整数\(a\)和\(n\)。\(-1000000\lea\le1000000\),\(1\len\le10000\)。输出一个整数,即乘方结果。题目保证最终结果的绝对值不超过\(1000000\)。样例输入23样......
  • Media Encoder 2024:未来媒体编码的新纪元 mac/win激活版
    随着科技的飞速发展,媒体内容已成为我们日常生活中不可或缺的一部分。为了满足用户对高质量视频内容不断增长的需求,MediaEncoder2024应运而生,它凭借卓越的技术和创新的特性,重塑了媒体编码的未来。→→↓↓载MediaEncoder2024mac/win版 MediaEncoder2024以其高效的编码......
  • 06天【代码随想录算法训练营34期】 第三章 哈希表part01(● 242.有效的字母异位词 ●
    242.有效的字母异位词思路:26位的array,每个分别对应a,b,c...,z,如果遇到一个字母就++,如果两个array一样则为anagramhint:toinitiateanarraywithnelementscarryingvalue0:arr=[]arr=[0foriinrange(n)]print(arr)classSolution:defisAnagram(self,......
  • redis哨兵 ,redis集群 缓存 以及某些问题: 最左前缀原则,,celery架构
    Redis哨兵#主从复制存在的问题:#1主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master-哨兵解决#2主从复制,只能主写数据,所以写能力和存储能力有限-集群来解决#搭建哨兵的目的一旦一主多从的架构,主库发生故障,能够自动转移一......
  • RSS Fever API 服务搭建避坑指南(FreshRSS + Fluent Reader, 2024年最新可用教程)
    1.适用人群需要通过RSS主动获取来自订阅源的信息,并且希望在多个设备上实现订阅源共享;拥有一台云服务器,并安装了Linux系统;能够访问谷歌。注意,这不是一篇非常详细的教程,对于教程中涉及的程序(如FreshRSS),官方和用户分别提供了充足的配置资料和经验分享,我会避免直接搬运它......
  • 【保姆级】2024年最新Onlyfans使用订阅教程
    【必看】开通步骤订阅OnlyFans的步骤简要总结如下:使用虚拟信用卡平台WildCard开通虚拟信用卡:注册教程。开卡后,进入WildCard首页,就能看到自己的虚拟信用卡信息把虚拟信用卡的信息填写到OnlyFans绑定信用卡界面就OK了总费用:从上面的链接进入开卡费一年9.9美元+OnlyFans订阅......
  • YC262A [ 20240321 CQYC省选模拟赛 T1 ] 多边形(polygon)
    题意有一个由\(0/1\)组成的字符串\(S\)。给你\(m\)次操作。假如\(S_{u}=1\)且\(S_{v}=0\),则交换\(S_{u},S_{v}\)。假如对于所有的\(S\),使得最终字符串\(S'\)的所有\(1\)相邻。请输出\(1\)的个数为\([1,n]\)的\(S\)的方案数。答案对\(2\)取模。......
  • 联合省选2024游记
    联合省选2024游记因为这是省选后114514三周后,为了庆祝我的笔记本电脑到了而写的,所以有很多东西都记不清了(因为在赶稿,总之先写到这,后面如果想起什么再补day-1下午五点放学,回家!顺便把机房前几天中午吃乡村基时外卖的两个大盒子给薅走了,给家里的两只猫猫\(CQ\)就是好,考省选也......
  • Python开源项目周排行 2024年第6周
    Python趋势周报,按周浏览往期GitHub,Gitee等最热门的Python开源项目,入选的项目主要参考GitHubTrending,部分参考了Gitee和其他。排名不分先后,都是当周相对热门的项目。入选公式=70%GitHubTrending+20%Gitee+10%其他关注微信公众号,接收周报推送#2024年第6周2024年3月16日......