我想实现一个时间序列数据库来存储简单的计数器使用redis(和PHP,但语言不应该是相关的,我认为)。所以,我实现了我的Redis键如下(简化):redis时间序列数据和时区
someprefix:YYYY-MM-DD:somecounter
现在,当我想要得到的数据范围为特定的时间间隔,我只是得到所有钥匙对于特定的范围,这一切都工作正常。 (YYYY-MM-DD是UTC的日期)
现在我想实现根据某个时区X获取数据的能力。 我的问题是:有什么方法可以使用此关键模式任何程度的准确性?
我猜测没有,因为根本没有时间信息,所以我也必须添加至少小时和分钟的关键所以时区转换工作正常。我也可能应该在较小的时间间隔内保存信息,否则在转换时区时有时候我会在不同日期获得所有数据,因为时区差异不应该超过13小时,因此给我错误的结果,我是对的?
在redis键上使用unix时间戳而不是格式化日期会更合适吗?例如,如果我稍后决定以更小的精度存储数据,比如说每小时或每10分钟一次,那么什么是更灵活的密钥格式?
希望我能够正确解释我的问题,但请随时要求澄清。
感谢
感谢您的答案John,但作为示例,请考虑以下情形: 位于不同时区(如UTC +1)的客户端请求数据从2014-09-02到2014-09- 06。 我的系统会将客户端提供的日期转换为UTC,因此转换后我有2014-09-01 23:00:00至2014-09-05 23:00:00,我将最终获取所有数据对于第1天,实际上我只需要从那天起1小时。 所以我的问题是:在这种情况下,每天创造一个真正有用的时间段?即使我每小时只有一小桶,也有15和30m偏移的时区。 – dev 2014-09-04 17:48:29