摘要:需求項目有一個保存實時抓拍圖片的功能需要統計攝像頭下每個時間點比如一分鐘保存的圖片個數并通過線型圖顯示到頁面上這很類似股票的分時線圖的功能所以我參考了一些網上的文章采用來實現這個功能先交代一下項目里數據的一個情況攝像頭個數在個左右單個攝像頭
需求: 項目有一個保存實時抓拍圖片的功能,需要統計攝像頭下每個時間點(比如一分鐘)保存的圖片個數,并通過線型圖顯示到頁面上.
這很類似股票的分時K線圖的功能.所以我參考了一些網上的文章,采用Redis來實現這個功能.
先交代一下項目里數據的一個情況:
攝像頭個數在150個左右,單個攝像頭每秒抓拍圖片數平均在5張左右,150個攝像頭一分鐘最大抓拍圖片量在200左右.
每天抓拍的圖片總數一般在60w-100w, 峰值不超過300w.
每張圖片的大小在8K左右.
需求分析:
可以顯示某個攝像頭下每分鐘的抓拍圖片個數. (時間點:分鐘,數值:圖片個數)
顯示最近一天的分時圖. (分時圖的區間:24小時,一天的時間點個數60*24=1440)
緩存最近一天內的保存圖片信息,以最大300w條記錄算. (memory< 1K*3000000 約等于3GB, 實際情況不到2G)
接下來重點說一下這里的設計:
由于每秒中的圖片數量不大,不用太考慮讀寫的壓力問題,所以我每接收到一張圖,則存入數據庫,再寫入redis當中.
存入redis的數據首先用到了redis中的自增操作, redis中分時數據的存儲格式為hash結構,key為count+ip,field為yyyy-MM-dd HH:mm的分鐘時間點,value則為圖片個數.比如192.168.0.1這個ip的攝像頭每抓拍到一張圖,則redis 操作命令為 HINCRBY "count:192.168.0.1" "2018-08-10 10:30" 1 . 當然,這里會做一個定時任務,每分鐘都會初始化每個攝像頭當前時間點抓拍圖片個數為0,操作指令為HSETNX "count:192.168.0.1" "2018-08-10 10:30" 0,防止查詢時找不到對應時刻的數據.由于hash是不支持直接傳入過期時間的,所以也需要在定時任務里刪除掉24小時之前的數據:HDEL "count:192.168.0.1" "2018-08-09 10:30".
除了自增1操作外,還用到了zset結構,保存圖片信息數據. 這里 zset的key為info:+ip,value為圖片信息的json數據,如圖片的地址,特征id,id等,score則保存的時當前距計算機元年的秒數.之所以這樣設計是為了方便重新統計和排序.
前端顯示數據,采用echart庫的Line,通過大量數據渲染線型圖.主要數據在兩個數組,x軸的時間點,y軸的圖片個數.兩個數組,時間點和個數一一對應.這也是第2步中要做定時任務初始化的原因.
初次獲取攝像頭的時分圖統計的時候,首先會讀取hash結構中對應key的數據,里面存儲了最近24小時的統計數據,通過new一個TreeMap可以對時間進行排序,然后mao的key和value就是x,y軸所需的兩個數組.獲取完成后,每分鐘去輪詢一次查詢當前攝像頭,上一分鐘的數據,這樣能保證數據和時間點一致.
如果需要獲取最近抓拍的圖片地址信息等,則可以通過zset結構里的ZRANGEBYSCORE命令查詢所需時間段的圖片信息.也可以重新統計每個時間點的圖片個數.同時這里也要在第2步的定時任務里做一個ZREMRANGEBYSCORE操作移除24小時前的數據.
到這里整個設計思路就展示差不多就基本完成了.當然這不是全部,還有些細節,比如定時任務是否正常執行,數據持久化,服務down掉了怎么處理等.
有時間把一些設計思路的代碼寫出來.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76805.html
摘要:作者重慶森林鏈接來源牛客網整個三月份通過牛客網和網友分享的經驗學到了很多東西,現在反饋一下我的面試經歷,希望對同學們有幫助。個人情況大三本方向渣碩,經過實驗室學長內推,于三月底完成面試。校招是實力和運氣的結合,缺一不可。 歡迎關注我的微信公眾號:Java面試通關手冊(堅持原創,分享美文,分享各種Java學習資源,面試題,以及企業級Java實戰項目回復關鍵字免費領?。簊howImg(h...
摘要:微軟響應大眾創業,萬眾創新號召,從年起與中國各級地方政府及本地運營合作伙伴攜手,共同推出了微軟云暨移動技術孵化計劃。年月,由上海市徐匯區人民政府上海儀電集團有限公司和微軟中國有限公司聯合創辦的云暨移動技術孵化計劃云賽空間創新孵化器正式啟動?! ?017年12月14日,上?!缮虾J行靺R區人民政府、上海儀電(集團)有限公司和微軟(中國)有限公司聯合創辦的云暨移動技術孵化計劃——云賽空間創新孵...
本文是公眾號讀者jianfeng投稿的面試經驗恭喜該同學成功轉型目錄:毅然轉型,沒頭蒼蠅制定目標,系統學習面試經歷毅然轉崗,沒頭蒼蠅首先,介紹一下我的背景。本人坐標廣州,2016年畢業于一個普通二本大學,曾經在某機構培訓過Android。2018年初的時候已經在兩家小公司工作干了兩年的android開發,然后會一些Tomcat、Servlet之類的技術,當時的年薪大概也就15萬這樣子。由于個人發展...
閱讀 1784·2023-04-25 15:51
閱讀 2497·2021-10-13 09:40
閱讀 2134·2021-09-23 11:22
閱讀 3244·2019-08-30 14:16
閱讀 2652·2019-08-26 13:35
閱讀 1847·2019-08-26 13:31
閱讀 874·2019-08-26 11:39
閱讀 2732·2019-08-26 10:33