2012-01-26 13 views
0

私は自分のアプリのデータモデルを構築しています。基本的には、特定のユーザーのために、友だちのリストとそれぞれのステータスを保持したいと思います。彼らは私のredisデータモデルのキーまたはリスト?

)まだなかった場合、私はいくつかのキーで終わる:(

friends:tom:status:jessica => joined 
friends:tom:status:stephan => joined 
friends:tom:status:hubert => pending 
friends:tom:status:peter => declined 

が最良の方法は、それを処理するか、リストが他の方法で使用されるべきであるということであるトムの各友人)のための1 ?

+0

シングルユーザーまたは複数のユーザー向けです –

+0

@GaneshKumar複数のユーザー用です – Luc

答えて

2

たとえば、​​3210構造を使用すると、ハッシュキーはfriends:tom:statusとなります。フィールドはフレンド名/ IDを表し、値は自分のステータスを表します。ハッシュ構造は一般的に専用キーよりもmemory efficientです。

2

これには順序付きセットを使用できます。

は各ステータスを持って、それに関連付けられたスコアを持って、2保留中、1に入社し、3

zadd user1_friends 1 userid 1 userid 2 userid 

を拒否し、その後、あなたは簡単にカテゴリ

zscore user1_friends 1 

か、に分割できて、すべてのユーザーを取得することができます3つの別々のセット

sadd user1_joined userid1 
sadd user1_pending userid3 

あなたがしたいことに応じてどちらでも動作します

関連する問題