是否有可能在排序集[Redis]中获得具有相同分数的成员?

时间:2012-02-17 15:26:46

标签: redis

我正在以下列方式使用有序集。

我有一个名为'available:numbers'的普通套装,其中包含电话号码。现在说用户注册,所以我们有一个名为'uid'的用户ID。这个新用户分配了“可用:数字”集中的数字。我有一个用户哈希,我可以存储此用户 - > alloted_number映射。问题是如何存储与同一用户关联的多个号码?

我想知道是否可以在这里使用排序集?我可以从'available:numbers'中弹出一个数字,并将其添加到一个名为'used:numbers'的排序集中,其得分为用户的'uid'。由于得分不需要是唯一的,并且所有成员都是独一无二的,这似乎是完美的选择。我想知道的是,是否有可能得到一个排序集的所有成员得分?这样我就可以把属于特定'uid'的所有数字拉出来或者我应该忘记为此目的排序的集合

由于

1 个答案:

答案 0 :(得分:2)

我可以建议您为每个用户保留一组吗?所以:

available:numbers = {1, 2, 3, 4}

user:numbers:UID1 = {5, 6}
user:numbers:UID2 = {7}

对我来说,这似乎更易于管理。话虽如此,您确实可以通过得分获得排序集的所有成员,请参阅ZRANGEBYSCORE

zrangebyscore user:numbers UID UID

我建议你阅读redis中所有可用命令的文档,文档真的是顶级的 - 你可以试用(大多数)命令直播 - 非常棒。

相关问题