解析Redis的返回结果解析1问题(redis返回-1)

2023-05-15 04:59:10 redis 返回 解析

Redis是一个开源的高性能Key-Value数据库, 广泛应用于诸多场景中。Redis在处理各个命令的响应信息时,统一使用简单的格式,有助于客户端开发者编写代码进行后续处理。本文将讲解Redis的命令返回结果解析一问题。

Redis的返回结果解析一共有6种不同的格式,分别是:Status code、Error、Integer、Bulk string、Array和Null。

1. Status code:用只读字符串 “+OK/PONG”表示成功处理;

2. Error:只读字符串 ” -ERR …some error message…” 其中some error message是一些错误信息;

3. Integer:表示一个整数,用整型的字符串 “:1000” 表示;

4. Bulk string:是任意长度的字符串,用 “$ len \r\n string \r\n ” 表示,其中 len 表示长度,string 表示字符串;

5. Array:由多个 Bulk string 或者空组成,用 “* len \r\n value [value …]”表示,len 表示 Array 中 Bulk string 个数,value 表示 Bulk string;

6. Null:表示为空,用 “nil” 表示。

下面这段代码,可以帮助我们解析Redis的返回结果,使用Node.js模拟实现:

“`javascript

let str = ‘*3\r\n$3\r\nSET\r\n$5\r\nmykey\r\n$7\r\nmyvalue\r\n’;

const RedisResolver = {

parse(str) {

let res = str.split(‘\r\n’)

if(res[0][0] === ‘+’ || res[0][0] === ‘-‘) {

// Status code or Error

return res[0]

} else {

res.shift()

let len = res.shift()

len = len.substr(1)

let arr = [], value

for(let i = 0; i

if (res[i][0] !== ‘$’) {

value = res.shift().substr(1)

arr.push(parseInt(value))

} else {

value = res.shift().substr(1)

arr.push(res.shift())

}

}

return arr

}

}

}

console.log(RedisResolver.parse(str)) // [ ‘SET’, ‘mykey’, ‘myvalue’ ]


以上便是关于解析Redis的返回结果解析一问题的介绍,Redis对于多选题的支持是非常友好的,只要我们了解了Redis的返回结果解析一问题,就可以根据实际情况,灵活构造出合适的代码,从而加快应用开发的效率。

相关文章