假设我添加了两个键:
SET husband Bob
SET wife Alice
然后将这些添加到集合中:
SADD family husband wife
我可以使用SMEMBERS family
获取此套装的键,它将返回:
1) "wife"
2) "husband"
我真正想要的是值:
1) "Alice"
2) "Bob"
这可能在一次手术中吗?基本上,我想用SMEMBERS
来管道MGET
。
答案 0 :(得分:5)
SMEMBERS
,但如果Set足够大,您的数据库将花费时间返回所有成员,在此期间它将被阻止。在这种情况下,建议使用SSCAN
。
编辑:错过了问题本身:)使用SORT family BY nosort GET *
答案 1 :(得分:1)
您需要了解的第一件事是Redis不允许您将集合放入集合中 - 没有嵌套的数据结构。同样,它们在一组中没有兽医和价值 - 只有你的情况下是字符串的成员。这就是为什么你无法获得价值观的原因。
这听起来像你想要的结构不是一个集合而是一个哈希。使用哈希将允许您完全按照您的要求执行操作。
hset family husband bob
hset family wife alice
然后使用hvals family
获取您所谓的值。
这是正确的方法,因为它使用正确的数据结构,将您的术语与结构相匹配,并提供您想要的结果,而不会产生排序性能损失。此外,它允许您使用各种哈希命令来选择或更新系列的特定成员。
您也可以使用hgetall
来使用映射。这样你的代码就知道爱丽丝是妻子而不是女儿。
总体来说,哈希当然是出于各种原因而去的地方。