Redis获取排序集的密钥,其中至少一个成员的得分小于N

时间:2018-07-19 15:05:25

标签: lua redis

我的Redis中有多个排序集。它们的键具有以下模式:

user:{userId}:data

其中userId是实际值。 对应集中的每个成员的得分等于添加时的时间戳。 现在,我试图弄清楚如何才能为那些在特定时间戳之前添加至少一个成员(这意味着至少一个成员的分数小于给定时间戳(以毫秒为单位))的排序集检索redis键。

我可以按模式检索所有键:

KEYS 'user:*:data'

实际上,我可以使用命令检查一键的必要条件:

ZRANGEBYSCORE user:{userId}:data -inf {timestamp}

然后检查返回数据的大小

但是我是否有办法(单行,管道命令或使用Lua脚本)仅获取那些至少有一个元素得分低于给定值的排序集的键?

1 个答案:

答案 0 :(得分:1)

如果此查询很重要(即需要快速返回),我会避免使用KEYSSCAN。相反,请保留每个用户具有最早时间戳的另一个排序集,并对其进行查询。

相关问题