RESP & JavaScript

将 RESP 与 JavaScript 相互转换

Redis 堆栈 Redis 社区版 Redis 企业软件 Redis 云 Redis 社区版 适用于 Kubernetes 的 Redis Enterprise 客户

当使用client.callAPI 时,回复被解析为 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和值verbatim2.__format替换为逐字字符串中的 ext 值(如果无法转换为 UTF8,则为 ERROR)
null JS 空

当使用client.callRawAPI 时,回复被解析为 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和值verbatim2.__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