Redis排序集可变参数排行榜

时间:2018-05-30 21:00:01

标签: redis leaderboard

我正试图建立一个胜过亏损格式的排行榜。例如,10/20将是10胜20负。我正在使用redis并想使用有序集。我如何通过胜利对redis进行排序,还可以归还损失?

我在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 hackers 1940 1945“alan kay”?

我认为哈希可能是一个更好的解决方案,但是我必须在其他地方对它进行排序。

我的主要问题: 如何使用redis通过输赢来对排行榜进行排序?

1 个答案:

答案 0 :(得分:1)

" variadic" ZADD的一部分是指它在一次调用中设置多个得分元素对的能力。分类集'元素总是只有一个分数。

但是,您可以保留两个排序集,一个用于胜利,另一个用于损失。