我想實現一個時間序列數據庫來存儲簡單的計數器使用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