3

redisハッシュa = {1:10, 2:15, 3:5, 4:0, 5:20}とセットが必要だとしましょうb = (5,3,4)bの値でソートされた、からの要素を含むリストを取得したいa[b](この場合の結果は[4,3,5])。

これをやろうとするとうまくいきません。

redis 127.0.0.1:6379> hmset a 1 10 2 15 3 5 4 0 5 20
redis 127.0.0.1:6379> sadd b 5 3 4
redis 127.0.0.1:6379> sort b by a->*
1) "3"
2) "4"
3) "5"

明らかに、ハッシュフィールドプレースホルダーのアスタリスクは機能しません。Redisを使用してこのタスクを実行するためにa:1-a:5を宣言する以外に、他の方法はありますか?

PSこれはRedisの複製ではありません:ハッシュをキーで並べ替えるにはどうすればよいですか?、その質問はa:*アプローチを明確に説明しているので。

4

2 に答える 2

2

これは既知の問題です:リンク

次のことができます。

redis 127.0.0.1:6379> 悲しい b 5 3 4

redis 127.0.0.1:6379> zadd a 10 1 15 2 5 3 0 4 20 5

redis 127.0.0.1:6379> zinterstore 結果 2 ab

redis 127.0.0.1:6379> zrange 結果 0 -1

1)「4」

2)「3」

3)「5」

于 2012-09-20T23:41:56.920 に答える
0

代わりに、ソートされたセットを使用してモデル化できますか? 値をスコアとして使用し、キーをメンバーとして使用します。ソートされたセットは、多かれ少なかれ、値でソートされたハッシュに似ています。例を挙げたいと思いますが、解決しようとしている問題が正確にはわかりません。詳しく教えて頂ければ助かります。

于 2012-09-20T14:55:34.263 に答える