1

redis 协议规范中,在“多批回复部分”下:

多批量回复用于返回一组其他回复。多批量回复的每个元素都可以是任何类型,包括嵌套的多批量回复。

但是,我想不出让 Redis 返回此类输出的方法。谁能提供一个例子?

4

1 回答 1

1

只有某些命令(尤其是返回值列表的命令)返回多批回复,您可以尝试使用LRANGEexample,但您可以查看命令参考以获取更多详细信息。

通常多批量回复只有 1 级深度,但一些 Redis 命令可以返回嵌套的多批量回复(最多 2 级),特别是EXEC(取决于在事务上下文中执行的命令)和两者EVAL/ EVALSHA(取决于返回的值通过 Lua 脚本)。

这是一个使用示例EXEC

redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> LPUSH metavars foo foobar hoge
QUEUED
redis 127.0.0.1:6379> LRANGE metavars 0 -1
QUEUED
redis 127.0.0.1:6379> EXEC
1) (integer) 4
2) 1) "hoge"
   2) "foobar"
   3) "foo"
   4) "metavars"

多批量回复的第二个元素EXEC是多批量 itef。

PS:我在评论中添加了关于使用 Lua 脚本时多批回复的实际最大嵌套级别的说明。tl; dr:基本上没有限制。

于 2013-03-03T18:48:30.053 回答