【问题标题】:Time interval based buckets in redis sorted setredis排序集中基于时间间隔的桶
【发布时间】:2018-12-04 17:33:10
【问题描述】:

有没有办法使用 redis 排序集生成基于时间间隔的桶。我想在特定的时间间隔内创建不同的排序集(比如说 15 分钟)

t1, t2 是分数

键排序集

bucket#V1 (t1,1),(t2,2).....(提交的bucket)

bucket#V1+15 (t3,1),(t4,2).....(提交的bucket)

bucket#V1+30 (t5,1),(t6,2).....(当前运行的bucket)

即在 15 分钟的间隔内,它应该自动创建新的密钥并开始在新的排序集中提取数据。 V1+15 应该在 15 分钟后开始...

第二个挑战是如何查询已提交的桶? (不运行仍在摄取数据的存储桶)。

最终目标是先查询已提交的存储桶,然后使用时间范围查询(基于分数,即 ZRANGEBYSCORE)查询每个存储桶中的数据

【问题讨论】:

    标签: redis


    【解决方案1】:

    您的密钥将类似于 DateTime.Now.SecondsSinceEpoch / TimeSpan.FromMinutes(15) 格式化为固定长度的字符串。这是一个 powershell 脚本,展示了如何获取间隔键值。您可以使用类似的例程来存储数据或请求任何过去(或将来)的时间间隔。这里的间隔是 3 秒,Epoch 值是 Jan 1, 1970,但可以使用任何你想要的。

    1..7 | % { $interval = [int] (((get-date) - (epoch)).TotalSeconds / 3) ; $interval ; start-sleep -Seconds 1 }
    514663592
    514663593
    514663593
    514663593
    514663594
    514663594
    514663594
    

    【讨论】:

      猜你喜欢
      • 2012-12-23
      • 2018-01-26
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多