我有两个不同的排序集。
一个是编辑器ID:
article_id editor_id
101 10
102 11
103 10
104 10
另一个排序集用于日期排序:
article_id day
101 29
102 27
103 25
104 27
我想合并这些显示第一个编辑器第二天排序状态的集合。 我应该使用哪些命令?
最佳答案
假设article_id
是你成员(member)的值(value),那editor_id
/day
是各自排序集中的分数,并假设每个 article_id
存在于两个排序集中,您可以执行以下操作:
ZINTERSTORE t 2 k1 k2 WEIGHTS 100 1 AGGREGATE SUM
解释:
-
t
是保存结果的临时键 -
k1
是存储editor_id
的 Sorted Set -
k2
是存储day
的 Sorted Set - 权重100乘以
editor_id
100(即向右“移动”两个位置) AGGREGATE SUM
结果如下:editor_id
* 100 +day
注意事项:
- 你可以使用
ZUNIONSTORE
而不是为了同样的结果 - 权重 100 的使用假设
day
是一个2位数的值
关于redis - Redis如何根据两个不同的sorted set进行排序呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29281920/