Redis 排序集可变参数排行榜

Redis sorted set variadic leaderboard

我正在尝试设置一个胜负格式的排行榜。例如,10/20 表示 10 胜 20 负。我正在使用 redis 并想使用排序集。我怎样才能让 redis 按胜负排序,还要 return 负重排序?

我在redis网站上找到了这个:

"

> zadd hackers 1940 "Alan Kay"
(integer) 1
> zadd hackers 1957 "Sophie Wilson"
(integer) 1
> zadd hackers 1953 "Richard Stallman"
(integer) 1
> zadd hackers 1949 "Anita Borg"
(integer) 1
> zadd hackers 1965 "Yukihiro Matsumoto"
(integer) 1
> zadd hackers 1914 "Hedy Lamarr"
(integer) 1
> zadd hackers 1916 "Claude Shannon"
(integer) 1
> zadd hackers 1969 "Linus Torvalds"
(integer) 1
> zadd hackers 1912 "Alan Turing"
(integer) 1

如您所见,ZADD 与 SADD 类似,但有一个额外的参数(位于要添加的元素之前),即分数。 ZADD 也是可变的,因此您可以自由指定多个分值对,即使在上面的示例中没有使用。

"

我找不到可变参数用法的示例。这是一种向一个元素添加 2 个分数的方法吗?喜欢 zadd 黑客 1940 1945 "alan kay"?

我认为散列可能是更好的解决方案,但我必须在别处对其进行排序。

我的主要问题: 如何使用 Redis 按输赢对排行榜进行排序?

ZADD 的 "variadic" 部分是指它能够在一次调用中设置多个分数元素对。 Sorted Sets 的元素总是只有一个分数。

但是,您可以保留两个 Sorted Set,一个用于获胜,另一个用于失败。