Redis如何根据两个不同的排序集进行排序?

时间:2015-03-26 15:05:45

标签: redis sortedset

我有两个不同的排序集。

一个是编辑ID:

article_id  editor_id
101         10
102         11
103         10
104         10

另一个排序集用于日期排序:

article_id  day
101         29
102         27
103         25
104         27

我想合并这些显示第一个编辑器第二天排序状态的集合。 我应该使用哪些命令?

1 个答案:

答案 0 :(得分:2)

假设article_id是您的会员的价值,而editor_id / day是相应排序集中的得分,并假设article_id {} >两者排序集,您可以执行以下操作:

ZINTERSTORE t 2 k1 k2 WEIGHTS 100 1 AGGREGATE SUM

说明:

  • t是一个保存结果的临时密钥
  • k1是存储editor_id
  • 的排序集
  • k2是存储day
  • 的排序集
  • 权重100将editor_id乘以100(即“向右移”两个位置)
  • AGGREGATE SUM会得到以下分数:editor_id * 100 + day

注意:

  • 您可以使用ZUNIONSTORE代替相同的结果
  • 权重100的使用假定day是2位数值