使用排序集,是否有一种简单的方法来计算“全局”值,例如集合中所有分数的平均值,中位数,最大值,分钟等,或者我是否总是需要提取分数并自己做计算(这有点痛苦......)?
答案 0 :(得分:4)
你可以用ZCARD和ZRANGE(当然有分数)来做这一切。
答案 1 :(得分:1)
没有简单的方法可以做到这一点。聚合命令不多。
编辑:如果这就是你必须要做的事情,那么排序集(甚至是redis)可能不是你想要的。你能详细说明你的用例吗?
答案 2 :(得分:0)
您可以添加另一个键,其中包含排序集中所有分数的总和。您必须在每次插入/更新/删除已排序集时手动更新它(在multi / exec中)。然后你可以得到这个值并用ZCARD除以得到平均值。