這樣一個需求redis
某公司,經過自動化,來記錄員工天天的考勤,及員工在公司中的行走狀況。分3個班次,每班次大概1000人。mongodb
員工每通過一個辦公室,都會收集到其信息。 數據格式:員工ID、時間、辦公室ID 數據庫
數據信息經過硬件自動採集,每3-5秒鐘至少發送一次數據。這一環節不作更多介紹。spa
在進入公司的時候,前後通過兩個門,依次爲A,B,這裏是有前後書序的。上班,先A,後B,下班先B後A。設計
進入後一個辦公室的時間,即爲離開前一個辦公室的時間。 代理
辦公室的ID是惟一的。數據分析
規定:A:1,B:2,工廠裏面的是2,3,4自動化
最終收集到雜亂無章的數據,如工人甲,1,1,1,2,2,3,3,3,3,3,4,4..,5,5 ,2,2,1,1監控
這樣這名工人就完成了進入工廠,到辦公室,離開工廠。硬件
現須要統計 進入工廠的時間:第一次進入A的時間,第一次進入B的時間。
對於每個辦公室,進入時間與離開時間
離開工廠的時間。
最終:分析出員工的考勤(上下班)、在公司的軌跡線路,最新位置。時間延遲不能超過2分鐘。監控室會實時查看相關數據。數據是經過TCP接收的。
階段一:
將數據原始存儲到數據庫中,而後經過代理運行分析,將分析後的結果存儲到數據庫中。
臨時數據在10-20萬,結果數據在200、300萬時已有些吃力。每分析一次最長鬚要10秒左右。
此方法也是通過了數次調整。
階段二
數據分析過程不在數據庫中處理,而在SOCKET中進行處理。數據庫不作分析,只作插入、讀取操做。
對於頻繁讀取的數據,也是存儲的SOCKET中。如即時位置。
自行設計了一套(UDP)協議,讀取最新數據。
工做量增長了不少,可是處理過程起來很是快!須要將數據庫數據與UDP讀取到的數據進行合併。
階段三
若是數據量巨大,將使用redis+mongodb。