redis-命令返回值

在大多数情况下,执行一条命令后我们往往会关心命令的返回值。命令的返回值有5种类型,对于每种类型redis-cli展现结果都不同。

状态回复

状态回复(status reply)是最简单的一种回复,比如向Redis发送set命令设置某个键的值时,Redis会回复状态OK表示设置成功。包括ping命令回复PONG也是状态回复。状态回复直接显示状态信息,例子如下:

127.0.0.1:6379> set status "OK"
OK
127.0.0.1:6379> ping
PONG

错误回复

当出现命令不存在或命令格式有错误等情况时Redis会返回错误回复。错误回复以(error)开头,并在后面跟上错误信息。如执行一个不存在的命令:

127.0.0.1:6379> dsadsad
(error) ERR unknown command 'dsadsad'

在2.6版本以前,错误信息都是以”ERR”开头,在2.8版本以后部分错误信息会以具体的错误类型开头如下

127.0.0.1:6379> LPUSH key 1
(integer) 1
127.0.0.1:6379> GET key
(error) WRONGTYPE Operation against a key holding the wrong kind of value

以WRONGTYPE开头就知道是类型错误,这个改进可以在调试时候可以知道是哪种错误。

整数回复

Redis虽然没有整数类型,但是却提供了一些用于整数操作的命令,如递增键值的INCR命令会以整数形式返回递增后的键值。除此之外,一些其它命令也会返回整数,如可以获取当前数据库中键的数量DBSIZE命令等。整数回复以(integer)开头,并在后面跟上整数数据:

127.0.0.1:6379> INCR foo
(integer) 1

字符串回复

字符串回复是最常见的一种回复类型,当请求一个字符串类型键的键值或一个其它类型键中的某个元素时就会得到一个字符串回复。字符串回复以双引号包括:

127.0.0.1:6379> get name
"lizhao"

如果该键值为空的时候,结果显示为(nil)。如:

127.0.0.1:6379> get lz
(nil)

多行字符串回复

多行字符串回复同样很常见,如当请求一个非字符串类型键的元素列表时就会收到多行字符串回复。多行字符串回复中的每行字符串都以一个序号开头,如:

127.0.0.1:6379> keys *
1) "status"
2) "name"
3) "key"
4) "meng"
5) "foo"

更多交流请扫我的技术公众号

我的技术公众号


版权声明:本文为li563868273原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。