Redis内置的LUA脚本支持应该能够使您有效地将命令链接在一起。请参见http://redis.io/commands/eval。虽然不完全符合您的要求,但或许这已经足够了。
一个简单的例子:
redis> set foo bar
OK
redis> set bar baz
OK
redis> eval "return redis.call('get',redis.call('get','foo'))" 0
"baz"
EVAL 'local ids = redis.call("ZRANGE", "myset", 0, 100);
return redis.call("MGET", unpack(ids));' 0
性能最佳的方法是使用键并使用缓存脚本。完整的说明在此处: http://redis.io/commands/eval
MGET ZRANGE ranks 0 1
是有效的,因为它获取了名称为"ZRANGE"
、"ranks"
、"0"
和"1"
的键的值。因此,你得到了四个(nil)
响应。Redis没有复合命令的概念。一些客户端支持命令管道。