解析Redis的返回结果解析1问题(redis返回-1)
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的返回结果解析一问题,就可以根据实际情况,灵活构造出合适的代码,从而加快应用开发的效率。