2017-06-09 8 views
0

ユーザーが演奏するすべての曲が私のredis DBに記録されるため、システムを設計しています。私はその後、アプリでTop Playedセクションを作成しています。アプリは、私のDBのインデックスを作成し、最も再生されたトラックを取り戻す(言い換えれば、最も重複しているトラック!)rihannaが4回演奏された場合、テイラースウィフト1回、U2で2回演奏される。私はリハナをリストの上に、u2を2位に、そしてテイラーを最上位にしたい。重複して並べ替える方法

私の質問:

どのように私が重複することによりRedisので並べ替えることができますか?または私の目標を達成するために何ができますか?

私が試したもの:

は私がやってみましたredis-cli sort top_played alphaもちろん、運のようにアルファベットで行くんthatsの。

以下は、ご希望の注文例です。あなたのデータを保存するために、LISTSORTED SET、NOTを必要

redis-cli lrange top_played 0 7 
1) "u2" 
2) "u2" 
3) "taylor swift" 
4) "rihanna" 
5) "rihanna" 
6) "rihanna" 
7) "rihanna" 

答えて

2

1. Rihanna 
2. U2 
3. Taylor Swift 

以下は私のデータベース出力です。

SORTED SETとすると、トラックが何回再生されたかをカウントできます。トラックが再生されるたびに、ZINCRBY players 1 track-nameに電話して、指定したトラックのカウンターを上げることができます。このようにして、レディスは再生された周波数ですべてのトラックをソートします。最上部のNトラックを取得する場合は、次のコマンドを発行してください:ZREVRANGE players 0 N-1

+0

申し訳ありませんでしたが、魅力的です!どうもありがとう。可能ではないと思って、それを感謝してください! – irishwill200

関連する問題