2012-02-17 8 views
1

私はソートセットを次の方法で使用しています。同じスコアを持つメンバーをソートセット[Redis]に入れることは可能ですか?

私は電話番号を含む 'available:numbers'という通常のセットを持っています。ユーザーがサインアップすると、 'uid'というユーザーIDがあります。この新しいユーザーには、「available:numbers」のセットから番号が割り当てられます。私はこのユーザー - > alloted_numberマッピングを格納できるユーザーハッシュを持っています。問題は、同じユーザーに関連付けられた複数の番号を格納する方法です。

ここでソートセットを使用することができますか?私は 'available:numbers'からPOPを数え、ユーザーの 'uid'であるスコアとともに 'used:numbers'というソートされたセットに追加できます。スコアはユニークである必要はなく、すべてのメンバーがユニークであるため、これは完璧にフィットするようです。私が知りたいことは、並べ替えられたセットのすべてのメンバーを得点することが可能なのでしょうか?私は特定の「UID」に属するすべての数字をヤンクできそれとも私はちょうどこの目的のためにソートセットについて

おかげ

答えて

2

を忘れなければならない。この方法では、私があなたの代わりに、ユーザーごとにセットしておくことをお勧めしてもいいですか?だから:

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

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

もっと管理しやすいように思えます。それは言って、あなたが実際にソートされたスコアによって設定されたすべてのメンバーを取得することができ、ZRANGEBYSCOREを参照してください。私はあなたがRedisの中のすべての利用可能なコマンドのドキュメントを読んで示唆

zrangebyscore user:numbers UID UID 

、ドキュメントは本当に一流である - そしてあなた(ほとんどの)コマンドを試してみることができます - 本当に素晴らしい。

関連する問題