如何组合来自Redis的数据?

如何组合来自Redis的数据?,redis,node-redis,Redis,Node Redis,我使用Redis中的排序集类型。每个用户向Redis添加一个事件,其中包含一个分数-当前时间戳和键:user:ID\u user 如何从redis store中按分数(时间戳)排序获得10个最新事件? 对于这一点,有一个函数ZREVRANGEBYSCORE,但如果使用它,我会遇到一个问题,因为不是每个用户在最后一次得分时都有事件 编辑: 例如,我想按分数(时间戳)合并一些已排序的键,并为每个用户选择最近4小时的最新数据 问题是,若用户在这个时间间隔(4小时)内并没有在Redis中发布数据,那个么

我使用Redis中的
排序集
类型。每个用户向Redis添加一个事件,其中包含一个分数-当前时间戳和键:
user:ID\u user

如何从redis store中按分数(时间戳)排序获得10个最新事件? 对于这一点,有一个函数Z
REVRANGEBYSCORE
,但如果使用它,我会遇到一个问题,因为不是每个用户在最后一次得分时都有事件

编辑: 例如,我想按分数(时间戳)合并一些已排序的键,并为每个用户选择最近4小时的最新数据


问题是,若用户在这个时间间隔(4小时)内并没有在Redis中发布数据,那个么就不会为该用户显示任何内容。但我需要从每个用户中选择按时间戳排序的最新数据。可能会使用任何功能?

我在这里发现了一个相同的问题:但我有一些问题,这些问题在我当前的问题中存在。我相信你的问题有答案,但我无法理解问题:)你能重新措辞/添加更多细节吗?抱歉,仍然不清楚。IIUC您有多个排序集,每个用户一个,根据时间戳(用作分数)存储事件(每个用户)。您希望合并(ZUNIONSTORE)多个这样的集合,以便在一个间隔(4h)内从这些用户(在结果集合上使用ZREVRANGEBYSCORE)获取n(10)个最后事件。如果一个用户(排序集)没有该时间间隔的事件,它将不会包含在结果中(在时间戳上过滤)。你想要的最终结果是什么?我想从每个用户那里获取最新的10个事件(
KEY
),并根据分数、分数时间戳将它们组合起来。这将是分数和数据的结果。现在我可以对每个键使用
ZUNIONSTORE
,但是有很多记录,所以我只想取10个。我想首先我可以使用
ZRANGE
为每个用户获取最新的10个键。在用户
ZUNIONSTORE
之后,选择组合键
。然后根据时间戳键和值进行排序