Redis排序集中基于时间间隔的存储桶

时间:2018-12-04 17:33:10

标签: redis

是否有任何方法可以使用Redis排序集生成基于时间间隔的存储桶。我想在特定的时间间隔(可以说15分钟)内创建不同的排序集

t1,t2是分数

键SortedSet

bucket#V1(t1,1),(t2,2).....(已提交的存储区)

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

bucket#V1 + 30(t5,1),(t6,2).....(当前正在运行的存储区)

即每隔15分钟,它将自动创建一个新密钥并开始将数据导入新的排序集中。 V1 + 15应该在15分钟后开始...

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

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

1 个答案:

答案 0 :(得分:0)

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

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