2017-08-06 18 views
0

Iam嘗試構建基本分析服務,該服務將顯示幾個密鑰(每天計數器網站點擊次數,每天計數器購買次數)的每日聚合。我可能會有更多。使用密鑰存儲和mysql數據庫實施分析的聚合

我的想法是使用redis來收集日常計數器,並在幾個小時內將這些數據刷新到帶日期的mysql中。通過這種方式,病人可以享受Redis的內存功能,並在以後使用mysql進行分析查詢。

你認爲這樣可以解決嗎?任何想法使用它不同?

謝謝。

+0

在這種情況下,您可以使用redis。並使用一些像YYYYMMDDHH這樣的前綴來存儲密鑰。然後在每個小時之後,您可以運行一個cron作業以從過去一小時的redis獲取所有密鑰(使用前綴匹配)並將數據推送到sql數據庫中。讓我知道你是否知道進一步的解釋。 – sourabh1024

回答

0

當然這會奏效。因此,只需將您的記錄寫入MySQL,無需Redis的中間步驟。你應該考慮簡化你的項目,直到你有很多流量,你的簡單實現跟不上。

您應該考慮使用MySQL的MariaDB 10.2分支。該分支具有窗口和排名功能,這對於分析工作來說可能非常方便。

+0

因此,你建議直接寫入mysql的所有內容..但Iam做聚合,這意味着每個原始數據生病需要做3個操作:select(檢索當前數據),增加,更新記錄回來。你不覺得它會在很短的時間內成爲死衚衕嗎?謝謝。 – rayman

+0

'UPDATE table SET col = col +? WHERE id =?'會在一次操作中增加MySQL或任何SQL系統中的記錄。當然,Redis也有類似的設置。 –

+0

每日聚合情況如何?你將如何安排這些? – rayman