2017-09-22 9 views
0

私はこのredisを初めて使うので、助けてください!私が保管してい は、このコマンドを使用してのRedisの値を持っているredisのハッシュをその値でソートする方法

client.hmset('top_trend', array[0], 0); 
client.expire('top_trend', 86400, redis.print); 

と私は、このコマンドを使用して、もう一度同じキーを設定しようとすると、値が「0」をインクリメントi'will、

if(client.hexists('top_trend', array[0]) == true){ 
    client.hincrby('top_trend', array[0] , 1, redis.print); 
} 
タミル語がすでにキー「top_trend」のために利用可能であるならば、それはそのVAを増加します

"tamil" 
"0" 
"english" 
"0" 
"hindi" 
"0" 

をキー=「top_trend」:

これは 、同様のRedisなどのデータの私の配列を格納しますこのようなLUE:降順で とノードJSでソートされた順序で値を取得する:

"tamil" 
"1" 
"english" (//if english is already 3 times available) 
"4" 

は、今私は、値をソートする必要があります。それを達成する方法。私はこのようにobject_ * - > objectコマンドでkey_valueをソートしようとしました。しかし、それは動作しません。助けて。

答えて

1

あなたの質問に答えるには - Redisは値で注文されたHashの内容を取り出す手段を提供しません。ハッシュが小さなことであれば、アプリケーション全体(Node.js)でそのハッシュをソートしてソートすることができます。

またFYI、あなたのコードはやや不必要であることが表示されます - それは存在していない場合でも、HINCRBYは、フィールドが初期化されますので、:

127.0.0.1:6379> EXISTS foo 
(integer) 0 
127.0.0.1:6379> HINCRBY foo bar 1 
(integer) 1 
127.0.0.1:6379> HGETALL foo 
1) "bar" 
2) "1" 

あなたが正当な理由がない限り、初期化してチェックすることを意味します"手動で"存在するためには、単にそのコードを削除することができます。

0

あなたの実装に必要な機能をいくつかの値で並べ替えた場合、別のRedisキーを使用することが考えられます。 ZINCRBYでスコアをインクリメントすることで、ソートセットを簡単に使用できます。さらに、この方法では、格納された値の辞書順を利用することもできます。

関連する問題