RESP & JavaScript
将 RESP 与 JavaScript 相互转换
Redis 堆栈 |
Redis 社区版 |
Redis 企业软件 |
Redis 云 |
Redis 社区版 |
适用于 Kubernetes 的 Redis Enterprise |
客户 |
当使用client.call
API 时,回复被解析为 resp3 回复,并使用以下规则转换为 JS 对象:
回复 3 |
JS 对象类型 |
status |
StringObject 替换为名为__reply_type 和值status (如果无法转换为 UTF8,则出错) |
bulk string |
JSString (如果无法转换为 UTF8,则出错) |
Error |
引发 JS 异常 |
long |
JS 大整数 |
double |
JS 编号 |
array |
JS 数组 |
map |
JS 对象 |
set |
JS 集 |
bool |
JS 布尔值 |
big number |
StringObject 替换为名为__reply_type 和值big_number |
verbatim string |
StringObject 带有 2 个附加字段: 1.__reply_type 和值verbatim 2.__format 替换为逐字字符串中的 ext 值(如果无法转换为 UTF8,则为 ERROR) |
null |
JS 空 |
|
|
当使用client.callRaw
API 时,回复被解析为 resp3 回复,并使用以下规则转换为 JS 对象:
回复 3 |
JS 对象类型 |
status |
JSArrayBuffer 替换为名为__reply_type 和值status |
bulk string |
JSArrayBuffer |
Error |
引发 JS 异常 |
long |
JS 大整数 |
double |
JS 编号 |
array |
JS 数组 |
map |
JS 对象 |
set |
JS 集 |
bool |
JS 布尔值 |
big number |
StringObject 替换为名为__reply_type 和值big_number |
verbatim string |
JSArrayBuffer 带有 2 个附加字段: 1.__reply_type 和值verbatim 2.__format 替换为逐字字符串中的 ext 值 |
null |
JS 空 |
|
|
JavaScript 到 RESP 的转换
JS 类型 |
RESP2 |
研究 3 |
string |
bulk string |
bulk string |
string 带字段的对象__reply_type=status |
status |
status |
例外 |
error |
error |
big integer |
long |
long |
number |
bulk string |
double |
array |
array |
array |
map |
array |
map |
set |
array |
set |
bool |
long |
bool |
string 带字段的对象__reply_type=varbatim 和__format=txt |
bulk string |
verbatim string 格式为txt |
null |
resp2null |
回复 3null |