RESP 和 JavaScript

将 RESP 转换为 JavaScript 并从 JavaScript 转换

在使用 client.call API 从函数内部运行 Redis 命令时,回复将被解析为 resp3 回复,并使用以下规则转换为 JS 对象

resp 3 JS 对象类型
状态 具有名为 __reply_type 的字段和值为 status(或如果无法转换为 utf8 则为错误)的 StringObject
批量字符串 JS String(或如果无法转换为 utf8 则为错误)
错误 引发 JS 异常
长整型 JS 大整数
双精度浮点数 JS 数字
数组 JS 数组
映射 JS 对象
集合 JS 集合
布尔值 JS 布尔值
大数 具有名为 __reply_type 的字段和值为 big_numberStringObject
逐字字符串 具有 2 个附加字段的 StringObject:1. __reply_type 和值为 verbatim 2. __format 具有逐字字符串中 ext 的值(或如果无法转换为 utf8 则为错误)
JS 空

在使用 client.callRaw API 从函数内部运行 Redis 命令时,回复将被解析为 resp3 回复,并使用以下规则转换为 JS 对象

resp 3 JS 对象类型
状态 具有名为 __reply_type 的字段和值为 status 的 JS ArrayBuffer
批量字符串 JS ArrayBuffer
错误 引发 JS 异常
长整型 JS 大整数
双精度浮点数 JS 数字
数组 JS 数组
映射 JS 对象
集合 JS 集合
布尔值 JS 布尔值
大数 具有名为 __reply_type 的字段和值为 big_numberStringObject
逐字字符串 具有 2 个附加字段的 JS ArrayBuffer:1. __reply_type 和值为 verbatim 2. __format 具有逐字字符串中 ext 的值
JS 空

JavaScript 到 RESP 转换

JS 类型 RESP2 RESP3
字符串 批量字符串 批量字符串
具有字段 __reply_type=statusstring 对象 状态 状态
异常 错误 错误
大整数 长整型 长整型
数字 批量字符串 双精度浮点数
数组 数组 数组
映射 数组 映射
集合 数组 集合
布尔值 长整型 布尔值
具有字段 __reply_type=varbatim__format=txtstring 对象 批量字符串 格式为 txtverbatim string
resp2 null resp3 null
RATE THIS PAGE
Back to top ↑