博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis协议规范(RESP)
阅读量:6956 次
发布时间:2019-06-27

本文共 1218 字,大约阅读时间需要 4 分钟。

Redis 即 REmote Dictionary Server (远程字典服务);

而Redis的协议规范是 Redis Serialization Protocol (Redis序列化协议)

该协议是用于与Redis服务器通信的,用的较多的是Redis-cli通过pipe与Redis服务器联系;

    协议如下:

          客户端以规定格式的形式发送命令给服务器;

          服务器在执行最后一条命令后,返回结果。

客户端发送命令的格式(类型):5种类型

    间隔符号,在Linux下是\r\n,在Windows下是\n

1. 简单字符串 Simple Strings, 以 "+"加号 开头

      格式:+ 字符串 \r\n

               字符串不能包含 CR或者 LF(不允许换行)

      eg: "+OK\r\n"

      注意:为了发送二进制安全的字符串,一般推荐使用后面的 Bulk Strings类型

2. 错误 Errors, 以"-"减号 开头

  格式:- 错误前缀 错误信息 \r\n

               错误信息不能包含 CR或者 LF(不允许换行),Errors与Simple Strings很相似,不同的是Erros会被当作异常来看待

      eg: "-Error unknow command 'foobar'\r\n"

3. 整数型 Integer, 以 ":" 冒号开头

  格式:: 数字 \r\n

      eg: ":1000\r\n"

4. 大字符串类型 Bulk Strings, 以 "$"美元符号开头,长度限制512M

  格式:$ 字符串的长度 \r\n 字符串 \r\n

               字符串不能包含 CR或者 LF(不允许换行);

      eg: "$6\r\nfoobar\r\n"    其中字符串为 foobar,而6就是foobar的字符长度

            "$0\r\n\r\n"       空字符串

            "$-1\r\n"           null

5. 数组类型 Arrays,以 "*"星号开头

  格式:* 数组元素个数 \r\n 其他所有类型 (结尾不需要\r\n)

             注意:只有元素个数后面的\r\n是属于该数组的,结尾的\r\n一般是元素的

      eg: "*0\r\n"      空数组

           "*2\r\n$2\r\nfoo\r\n$3\r\nbar\r\n"      数组包含2个元素,分别是字符串foo和bar

    "*3\r\n:1\r\n:2\r\n:3\r\n"       数组包含3个整数:1、2、3

           "*5\r\n:1\r\n:2\r\n:3\r\n:4\r\n$6\r\nfoobar\r\n"  包含混合类型的数组

           "*-1\r\n"         Null数组

           "*2\r\n*3\r\n:1\r\n:2\r\n:3\r\n*2\r\n+Foo\r\n-Bar\r\n"   数组嵌套,外层数组包含2个数组,整理后如下:

                 "*2\r\n

      *3\r\n:1\r\n:2\r\n:3\r\n

      *2\r\n+Foo\r\n-Bar\r\n"

转载地址:http://mimil.baihongyu.com/

你可能感兴趣的文章
探寻虹膜识别背后的身份密码 | 硬创公开课
查看>>
欧洲工业无线网络技术采用中国标准
查看>>
iOS审核 iPhone screenshots do not display the app in the correct device frame
查看>>
MySQL数据库的索引原理、与慢SQL优化的5大原则
查看>>
新装服务器系统非常卡的原因
查看>>
知道它们,你就能玩转SASS
查看>>
node学习笔记一
查看>>
AOP基本概念
查看>>
Linux里五种I/O模型
查看>>
global mapper 地图
查看>>
用 Python 实现抖音尬舞机
查看>>
设计模式1 - 简单工厂模式
查看>>
Mac 上使用jdb 调试Android
查看>>
[译]你可能不需要Redux
查看>>
程序猿秃顶算工伤吗?
查看>>
SpringBoot 对多线程的支持
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-二分搜索树(二)
查看>>
【通俗易懂】JWT-使用的可能正确姿势
查看>>
用 Feature First 的方式管理前端项目复杂度
查看>>
ARTS 第二周
查看>>