2012-02-17 33 views
1

我以下面的方式使用排序集。是否有可能在排序集[Redis]中获得相同分数的成员?

我有一个正常的名为'可用:数字'包含电话号码集。现在说一个用户注册,所以我们有一个名为'uid'的用户ID。这位新用户在“可用:数字”集中分配了一个数字。我有一个用户散列,我可以存储这个用户 - > alloted_number映射。问题是如何存储与同一用户关联的多个号码?

我想知道是否可以在这里使用排序集?我可以从“可用:数字”中弹出一个数字,然后将其添加到名为'used:numbers'的有序集合中,得分是用户的'uid'。因为分数不需要是独一无二的,所有成员都是独一无二的,所以这看起来非常合适。我想知道的是,有可能让一个有序集合的所有成员给出一个分数?我这样,我可以抽出了属于某一特定“UID”所有数字或我应该忘了整理为此作出

感谢

回答

2

可能会建议您保留一组为每个用户呢?所以:

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

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

对我来说这似乎更易于管理。话虽这么说,你确实可以得到一个排序按分数设定,看到ZRANGEBYSCORE所有成员:

zrangebyscore user:numbers UID UID 

我建议你通过在Redis的所有可用命令的文档阅读,文件确实是顶尖的 - 你可以尝试(大多数)命令生活 - 真棒。

相关问题