2012-02-17 70 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的所有可用命令的文檔閱讀,文件確實是頂尖的 - 你可以嘗試(大多數)命令生活 - 真棒。

相關問題