redis - Redis 排序集可变参数排行榜
问题描述
我正在尝试建立一个以胜负盈亏格式的排行榜。例如,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 黑客 1940 1945 “艾伦凯”?
我认为散列可能是一个更好的解决方案,但是我必须在其他地方对其进行排序。
我的主要问题:如何使用 redis 按输赢对排行榜进行排序?
解决方案
ZADD 的“可变参数”部分指的是它能够在一次调用中设置多个分数元素对。Sorted Sets 的元素总是只有一个分数。
但是,您可以保留两个 Sorted Set,一个用于胜利,另一个用于失败。
推荐阅读
- r - L-BFGS-B 需要 'fn' 的有限值
- java - 复合主键表未填充到相关实体中
- c# - 如何在不使用服务模型的情况下反序列化 json 列表?
- java - Maven - 为java项目中的每个java包创建一个jar
- android - 将表盘部署到设备
- jquery - 如何使用 .selectmenu jquery ui 自动填充信用卡数据?
- javascript - 升级到 3.1 版本后 NokiaHere 地图渲染问题
- windows - 不同 Windows 版本的默认执行策略是什么?
- laravel - 我如何将 Laravel 的 Bootstrap 4 降级到 3.3.7
- batch-file - 如何批量对齐列中的文本