3

現在、ソートされたセットメンバーを更新しようとしています。ドキュメントを見ると、ZADDスコアが既に存在する場合、メンバーを更新する必要があるようです。ただし、このコードを使用してメンバーを更新しようとすると、

db.zadd("users", parseInt(key, 10) + 1, JSON.stringify(newData));

....スコアが既に存在する場合でも、新しいエントリが追加されます! 並べ替えられたセット メンバーを redis で更新するにはどうすればよいですか?

4

3 に答える 3

7

ZADD は、エントリ間でキーとメンバーが一致する限り、古いメンバーのスコアを置き換えます。

redis localhost:6379> ZADD test-key 40 blah
(integer) 1
redis localhost:6379> ZRANGE test-key 0 -1 WITHSCORES
1) "blah"
2) "40"
redis localhost:6379> ZADD test-key 45 blah
(integer) 0
redis localhost:6379> ZRANGE test-key 0 -1 WITHSCORES
1) "blah"
2) "45"

おそらく、ZADD コマンド間で異なるキーまたはメンバーを使用していますか?

于 2013-09-05T00:18:43.433 に答える