可以使用管道在redis中计算多集运算吗
(a并集b并集c)相交(d并集c)太阳离子a b c烧结d c
发布于 2012-09-23 08:09:49
不会,因为在管道中,您只能在发送了整个命令集之后才能获得结果(请参阅documentation),因此,正如您可能猜到的那样,您需要在示例中分别获取每个嵌套操作的结果。
然而,使用redis 2.6中内置的脚本功能和一些lua可以实现一些非常类似的功能,听起来似乎可以满足您的要求:
EVAL "return redis.call('sinter', redis.call('sunion', 'a', redis.call('sunion', 'b', 'c')), redis.call('sunion', 'd', 'c'))"上面的代码是一个简化的代码,它未经测试,但它应该让您大致了解什么是可能的。有关documentation here的更多信息。
发布于 2012-09-26 18:10:54
不能,但您可以使用事务(多个)
MULTI
SUNIONSTORE abc a b c
SUNIONSTORE cd c d
SINTERSTORE i abc cd
SMEMBERS i
DEL abc cd i
EXEC另外,似乎你不需要使用c,因为它的所有成员都将被放在i中
https://stackoverflow.com/questions/12547467
复制相似问题