我的Redis中有多个排序集。它们的键具有以下模式:
user:{userId}:data
其中userId是实际值。 对应集中的每个成员的得分等于添加时的时间戳。 现在,我试图弄清楚如何才能为那些在特定时间戳之前添加至少一个成员(这意味着至少一个成员的分数小于给定时间戳(以毫秒为单位))的排序集检索redis键。
我可以按模式检索所有键:
KEYS 'user:*:data'
实际上,我可以使用命令检查一键的必要条件:
ZRANGEBYSCORE user:{userId}:data -inf {timestamp}
然后检查返回数据的大小
但是我是否有办法(单行,管道命令或使用Lua脚本)仅获取那些至少有一个元素得分低于给定值的排序集的键?
答案 0 :(得分:1)
如果此查询很重要(即需要快速返回),我会避免使用KEYS
或SCAN
。相反,请保留每个用户具有最早时间戳的另一个排序集,并对其进行查询。