RESP 和 JavaScript

在 RESP 和 JavaScript 之间转换

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

resp 3 JS 对象类型
状态 名为 __reply_type 的字段值为 statusStringObject(如果无法转换为 utf8,则为错误)
大块字符串 JS String(如果无法转换为 utf8,则为错误)
错误 引发 JS 异常
JS 大整数
JS 数字
数组 JS 数组
映射 JS 对象
设置 JS 设置
布尔 JS 布尔值
大数字 名为 __reply_type 的字段值为 big_numberStringObject
逐字字符串 StringObject,带有 2 个附加字段:1. __reply_type,值为 verbatim;2. __format,值为逐字字符串中的 ext(如果无法转换为 utf8,则为错误)
JS null

使用 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
逐字字符串 JS ArrayBuffer,带有 2 个附加字段:1. __reply_type,值为 verbatim;2. __format,值为逐字字符串中的 ext
JS null

JavaScript 到 RESP 的转换

JS 类型 RESP2 RESP3
字符串 大块字符串 大块字符串
带有字段 __reply_type=statusstring 对象 状态 状态
异常 错误 错误
大整数
数字 大块字符串
数组 数组 数组
映射 数组 映射
设置 数组 设置
布尔 布尔
带有字段 __reply_type=varbatim__format=txtstring 对象 大块字符串 verbatim string 格式为 txt
resp2 null resp3 null
评价此页面