【问题标题】:Redis get keys for sorted sets where at least one member has score less than NRedis 获取至少一个成员得分小于 N 的排序集的键
【发布时间】:2018-07-20 19:14:43
【问题描述】:

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

user:{userId}:data

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

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

KEYS 'user:*:data'

其实,我可以使用命令检查一个键的所需条件:

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

然后检查返回数据的大小

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

【问题讨论】:

    标签: lua redis


    【解决方案1】:

    如果此查询很重要(即需要快速返回),我会避免使用 KEYS 或 SCAN。相反,保留每个用户拥有的最早时间戳的另一个排序集,然后查询它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多