有没有办法使用redis排序集来生成基于时间间隔的存储桶?我想在特定的时间间隔(比如15分钟)创建不同的排序集
t1,t2是分数
Key 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)查询每个存储桶中的数据。
发布于 2018-12-05 22:21:47
您的密钥将类似于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
514663594https://stackoverflow.com/questions/53618527
复制相似问题