RESP & JavaScript
将 RESP 与 JavaScript 相互转换
Redis 开源 | Redis Enterprise Software | Redis Cloud | Redis 开源 | Redis Enterprise for Kubernetes | 客户端 |
---|
当使用 client.call
API 在函数中运行 Redis 命令时,回复会被解析为 resp3 回复并使用以下规则转换为 JS 对象
resp 3 | JS 对象类型 |
---|---|
状态 |
名为 __reply_type 且值为 status 的 StringObject (如果无法转换为 utf8,则为错误) |
批量字符串 |
JS String (如果无法转换为 utf8,则为错误) |
错误 |
引发 JS 异常 |
长整数 |
JS 大整数 |
双精度浮点数 |
JS 数字 |
数组 |
JS 数组 |
映射 |
JS 对象 |
集合 |
JS 集合 |
布尔值 |
JS 布尔值 |
大数字 |
名为 __reply_type 且值为 big_number 的 StringObject |
逐字字符串 |
具有 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_number 的 StringObject |
逐字字符串 |
具有 2 个附加字段的 JS ArrayBuffer :1. __reply_type 且值为 verbatim 2. __format ,其中包含逐字字符串中的 ext 值 |
空值 |
JS 空值 |
JavaScript 到 RESP 的转换
JS 类型 | RESP2 | RESP3 |
---|---|---|
字符串 |
批量字符串 |
批量字符串 |
具有字段 __reply_type=status 的 string 对象 |
状态 |
状态 |
异常 | 错误 |
错误 |
大整数 |
长整数 |
长整数 |
数字 |
批量字符串 |
双精度浮点数 |
数组 |
数组 |
数组 |
映射 |
数组 |
映射 |
集合 |
数组 |
集合 |
布尔值 |
长整数 |
布尔值 |
具有字段 __reply_type=varbatim 和 __format=txt 的 string 对象 |
批量字符串 |
格式为 txt 的 verbatim string |
空值 |
resp2 null |
resp3 null |