2011-11-14 39 views
4

對於排序集合,是否有一種簡單的方法來計算「全局」值,例如集合中所有分數的平均值,中值,最大值,最小值等我總是需要提取分數並自己做計算(這有點痛苦......)?排序集合的「全局」計算

回答

1

有沒有簡單的方法來做到這一點。沒有多少聚合命令。

編輯:如果這就是你必須做的,也許排序集(或甚至redis)是不是要走的路。你能詳細說明你的用例嗎?

0

您可以添加另一個鍵與排序集合中所有分數的總和。你將不得不手動更新它(在一個多/執行可能)每個插入/更新/刪除有序集。然後你可以得到它的價值,並用ZCARD分割得到平均值。

3

你可以用ZCARD和ZRANGE(當然,當然是)。

  • 敏:ZRANGE對指數0
  • 最大:上最大指數ZRANGE(ZCARD值)
  • 中位數:ZRANGE在中間指數(ZCARD/2)
  • 平均:您可以存儲的總在另一個計數器中關閉所有得分,然後將其除以ZCARD值