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 且值为 statusStringObject(如果无法转换为 utf8,则为错误)
批量字符串 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
评价此页面
返回顶部 ↑