程志芳
安科瑞電氣股份有限公司 上海嘉定201801
摘要:智慧消防系統是一種將GPS(衛星定位系統)、GIS(地理信息系統)、GSM(無線移動通信系統)和計算機、物聯網及大數據等技術集于一體的智能消防無線報警網絡服務系統Redis內存數據庫應用于智慧消防系統的設計中,可以使智慧消防數據查詢滿足高訪問量、操作方便的現實需求,為智慧消防的大數據存儲設計提供了有效的參考。
關鍵詞:智慧消防;物聯網;大數據;Redis內存數據庫
0引言
智慧消防系統山是一種將GPS(衛星定位系統)、GIS(地理信息系統)、GSM(無線移動通信系統)和計算機、物聯網和大數據⑵等技術集于一體的智能消防無線報警網絡服務系統。隨著信息技術的深度發展,人類已進入大數據時代,消防行業面臨著巨大挑戰與機遇,傳統消防系統工作方式與新形勢、新任務不相適應的矛盾日益凸顯,在物聯網產業迅猛發展的大背景下,主動運用大數據來解決了電信、建筑、供電、交通等公共設施建設協調發展的問題,在智慧消防系統中,消防指揮與用戶單位聯網,改變了過去傳統、落后和被動的報警、接警、處警方式,實現了報警自動化、接警智能化、處警預案化、管理網絡化、服務專業化、科技現代化,大大減少了中間環節,提高了處警速度,做到了方便、快捷、可靠,使人民生命、財產的以及警員生命的得到保護
Redis*Remotedictionaiyserver)是一款開源的、網絡化的、基于內存的、可進行數據持久化的Key-Vah/存儲系統。它的數據模型建立在外層,類似于其他結構化存儲系統,是通過Key映射Value的方式來建立字典以保存數據,有別于其他結構化存儲系統的是,它支持多種數據類型的存儲:字符串(string)、鏈表(list)、集合(set)、有序集合(zset)和哈希類型(hash),并且各種類型都支持豐富的操作,其中大多都支持原子操作。為了保證數據存取的效率,數據都保存在內存中Redis還提供了對持久化的支持%它可以定期將更新的數據異步寫入磁盤,同時不影響繼續提供服務。在此基礎上,還實現了主從復制,這對預防單點故障和提高負載能力有很大幫助。在操作方面,Redis基于TCP協議的特性使得它可以通過管道的方式進行數據操作閩。Redis本身提供了一個可連接Server的客戶端,通過客戶端可方便地進行數據存取操作。
在智慧消防底層數據庫設計中,*可以應用Redis數據存儲系統,以滿足高訪問量與操作方便的需求氣在操作方面,應用Redis的管道通訊方式進行數據操作,通過Redis本身的客戶端,可以同時連接Server服務器,方便地進行數據存取操作常用的消防產品信息如:產品的生產企業、型號、證書編號、地理位置信息與應急救援指示信息等較復雜的信息等信息可以以字符串的格式存儲在Redis的底層數據結構中、通過hash結構存儲,并通過可以標識產品信息的主鍵建立不同數據表中各條產品信息的聯系,構建底層信息字典利用Redis底層數據結構對字符串和字典數據的支持,可以達到快速査詢的目的。
在字符串數據的實現中,采用SDS(SimpleDynamicString,簡單動態字符串)取代了功能單一,抽象層次低,并且不的char*類型字符串。在字典數據的實現中,為了兼顧簡單性,使用了哈希表。在實現哈希表時,有一個問題就是釆用何種策略來解決碰撞問題。對于使用鏈地址法來解決碰撞問題的哈希表來說.哈希表的性能取決于哈希表大小與保存節點數量之間的比率、RDB將數據庫的快照以二進制的方式保存到磁盤中在Redis運行時,RDB程序將當前內存中的數據庫快照保存到磁盤文件中,在Redis重啟動時,RDB程序可以通過載入RDB文件來還原數據庫的狀態。AOF則以協議文本的方式,將所有對數據庫進行過寫入的命令(及其參數)記錄到AOF文件,以此達到記錄數據庫狀態的目的。AOF更像是歷史記錄,記錄所有運行過的命令。但是AOF文件就會隨著時間持續增長,進而占據整個磁盤為此,Redis設計了AOF重寫機制,通過開啟新線程,掃描數據庫數據,將其轉化為Redis命令,存入臨時的AQF文件當掃描完后,用臨時文件代替AOF文件。這樣一來,AOF文件中記錄的命令,因而不會占據很多空間。
Redis兼具內存數據庫隨機訪問的優勢和Key-Value數據模型簡單特點,因此,其I/O性能非常優異,支持高并發性,豐富的數據結構適合存儲何種復雜的數據??紤]到社會對智慧消防數據服務的實時響應、高并發、高吞吐量提出了更高的需求,且大多數消防產品信息數據服務后臺數據量并不大,大容量、低價格的內存使得以內存數據庫的輕量級空間數據應用成為可能。本文以內存數據庫Redis為平臺,利用其響應速度快、并發性高、數據結構豐富的優勢,研究了Redis的輕量級數據的組織和索引方法,提升髙并發訪問下消防產品信息數據服務的響應速度和査詢性能。
1 Redis數據模型
1.1數據結構設計
Redis本身存儲是一個巨大的Hash表,為了模仿關系型數據庫的表,通常使用分隔符分隔“表名”以及“字段”,本文使用”:”作為分隔符例如存儲一個消防產品的屬性信息,可以表示為Product:ProductID作為key,并用hash結構存儲消防產品屬性信息field域包括:產品名稱(ProductName)、產品型號(ProductType)、出廠日期(DateofProduct)、技術參數(TechnicalParameters)、證書編號(CertificateNumber)、安裝位置(InstallationSite)和報警記錄(AlarmRecord)等字段。value域包含實際的存儲信息。在每一個消防產品投入到智慧消防云平臺前,系統會為其賦予的產品編號PmductlD,因此該key。
1.2系統配置
本文采用主從方式進行系統配置,共有3個主(master)節點,3個從(slave)節點,采用全雙工通信方式,客戶端連接數設置為10000,系統為每個節點分配的內存為1000MB。采用Java虛擬機環境,Jvm主處理單元配置為4核Intel(R)Xeon(R)CPUE7-4830v2@2.20GHz,內存31GB,操作系統選擇NeoKylinLinuxAdvancedServerrelease6.0o緩存集群服務器主處理器配置為4核Intel(R)Core(TM)i3-2120CPU@3.30GHz,內存5.5GB,操作系統選擇RedHatEnterpriseLinuxServerrelease6.3o
2實驗與分析
2.1大批量操作緩存測試
智慧消防是一個全新的概念和理念,目前尚處于發展階段,還沒有和統一的定義和標準。根據智慧消防模型設計的理念圓,模擬出能夠體現消防產品信息,消防產品安裝位置信息和消防產品地理位置信息等數據,根據這些信息生成智慧消防系統的模擬數據。在消防產品入網前,為每一個產品分配的ProductID,以作為該產品在系統中的標識??紤]到消防數據的復雜與多樣性性在模擬數據時,盡可能地選擇了多的可能體現消防產品信息的數據,考慮到不同的表中要素的個數不同,共生成了2個數據表KalOO和AcOOl,其中KalOO中數據盡可能多地體現了產品的信息,表中所含要素個數為27891個,AcOOl盡可能多地體現了產品的位置信息,表中所含要素個數為46254個,2張表格中分別具有消防產品信息數據10萬條。
2.2寫緩存測試
考慮到智慧消防系統在實際應用中,寫緩存業務單次不會超過5萬條,因此將測試的數據量上限設為5萬。當緩存服務器宕機或其他因素導致緩存不可用時,程序會將單次上傳的所有數據存入一條zzOl的blob(binarylargeobject)類型字段中,其中blob的容量為2GB。下面本文對寫緩存成功的時間,寫緩存失敗的時間以及緩存失敗時存入blob的數據量進行了測試。
通過對測試結果進行分析,可以看出緩存同步時間隨著數據量的增加基本呈現線性增長的趨勢,當數據量達到5萬條時,AcOOl大小為18.6MB,KalOO大小為18MB,而blob可以容納2GB,不會發生溢出。這樣的結果說明,Redis寫緩存的實現過程*可以滿足智慧消防系統實際應用中大數據量同時寫入緩存的需求。
2.3數據査詢測試
本文中共使用2個數據表KalOO和AcOOl,其中KalOO中數據盡可能多的體現了產品的信息,表中所含要素個數為27891個,AcOOl盡可能多地體現了產品的位置信息,表中所含要素個數為46254個,2張表格中分別具有消防產品信息數據10萬條。在Redis環境和普通數據庫環境下,分別對兩張表中不同條數的數據進行了査詢,測試結果取5次測試的平均值,計算出平均査詢時間
從測試結果中可以看出,無論什么數據,Redis環境都比Oracle環境下耗時少得多。因為Oracle使用的是R樹空間索引,而Redis使用的是網格索引,通常來講,R樹空間索引的效率要高于網格索引的效率,但Redis在網格索引的支持下,效率仍然高于Oracle,說明Redis在智慧消防數據的査詢上,效率更高。另外,Redis作為內存型數據庫,數據存放在內存中,數據査詢可以得到快速響應,而傳統的關系型數據庫Oracle,需要將數據存放在硬盤中,需要先傳輸到內存中,才能得到響應,受制于I/O傳輸瓶頸,査詢效率明顯低于Redis數據庫。
3 安科瑞智慧消防監控云平臺介紹與選型
3.1平臺簡介
安科瑞智慧消防綜合管理云平臺基于物聯網、大數據、云計算等現代信息技術,將分散的火災自動報警設備、電氣火災監控設備、智慧煙感探測器、智慧消防用水等設備連接形成網絡,并對這些設備的狀態進行智能化感知、識別、定位,實時動態采集消防信息,通過云平臺進行數據分析、挖掘和趨勢分析,幫助實現科學預警火災、網格化管理、落實多元責任監管等目標。原先針對“九小場所”和?;飞a企業無法有效監控的空白,適應于所有公建和民建,實現了無人化值守智慧消防,實現智慧消防“自動化”、“智能化”、“系統化”、用電管理的實際需求。
從火災預防,到火情報警,再到控制聯動,在統一的系統大平臺內運行,用戶、安保人員、監管單位都能夠通過平臺直觀地看到每一棟建筑物中各類消防設備和傳感器的運行狀況,并能夠在出現細節隱患、發生火情等緊急和非緊急情況下,在幾秒時間內,相關報警和事件信息通過手機短信、語音電話、郵件提醒和APP推送等手段,就迅速能夠迅速通知到達相關人員。同時,通過自動消防滅火控制裝置啟動自動滅火設備和消防聯動控制設備,有效解決用電單位電氣線纜老舊,小微企業無專業電工、肉眼無法直觀系統即時排查電氣隱患、隱蔽工程隱患檢查難等難題,及時排除隱患。
3.2平臺功能
(1)平臺登陸
用戶登錄成功之后進入首頁,如圖所示。主要展示的內容有:項目概況、設備狀態、設備分類、設備報警信息、報警分類、報警統計、設備臺賬信息等。其中地圖可以選配成BIM建筑模型,任何傳感器報警時可以在BIM模型中預警顯示。
2)實時監控
智慧用電子系統可接入電氣火災、故障電弧、電氣火災主機、滅弧式保護器探測和母排無線測溫探測等等各類子系統,實現對相關消防系統設備的信息實時監控,一且發現監測數劇超過風險閾值,APP、電話報警統統上陣,通過設備的標簽、地理位置定位,快速通知,快速處置
(3)隱患管理
隱患管理包括隱患巡查、隱患處理、和隱患記錄,隱患巡查的目的是為了系統在產生報警或隱患后,系統可以針對工程人員派發工單,處理完以后工程人員能夠在系統中填寫相關工單任務記錄,以供歷史查詢。隱患統計支持對項目進行日、月、季、年的維度查詢,并能夠自定義時間查詢,將項目下隱患以曲線,圖表的形式展現
(4)統計分析
統計分析包括數據匯總和分析報告,數據匯總以曲線和表格形式顯示各個月份的報警和故障記錄,同時顯示控制日志,支持按照控制類和參數設置類分別顯示,也可以按照操作是否成功分別顯示,包括此次控制的操作情況,項目名稱,設備信息以及對應的操作時間等;分析報告包括總體概況和設備回路特征分析。
(5)運維管理
根據運維調度管理的需要,智能調度技術人員可以分為不同角色,系統支持巡檢計劃和巡檢日歷,可支持巡檢人員使用手機NFC芯片巡檢打卡的功能。
(6)手機APP功能
手機APP軟件具有IOS版本和安卓版本,并與電腦終端系統的數據同步,能展示剩余電流、溫度、電壓、電流等電氣參數的實時監測數據及變化曲線、歷史數據與變化曲線;短路、斷線、漏電、超溫、過壓、欠壓、過流等電氣故障實時報警數據等;能實時顯示項目地理位置、未排除隱患數、未處理巡檢數等;通過APP消息推送的方式提醒用戶實時報警信息;可以實現遠程復位、遠程分閘功能;可以對所有現場探測器進行遠程參數設定及修改;可以對所有現場探測器的遠程控制記錄進行查詢;
硬件配置清單:(如申請阿里云可忽略)
3.4系統現場硬件配置清單:
注:以下配置為針對1個回路選型,其中剩余電流互感器應根據現場回路電流大
4 結論
消防物聯網的技術發展,將給消防事業帶來全新的方法與途徑,將改變消防產品生產與消防監管模式四。智慧消防的發展乃是大勢所趨,它是社會發展和人們生活水平提高到一定程度后的必然需求叫。但智慧消防的實現,不僅需要消防從業人員的努力,同時需要與物聯網和大數據等技術進一步結合四。本文提出的Redis在智慧消防系統設計中的設計,實現了智慧消防數據庫系統的Redis模型的建立。試驗結果表明,Redis數據模型在智慧消防數據查詢的響應效率,較傳統的Oracle數據模型有較大的優勢,可以滿足智慧消防系統實際應用中高訪問量、高并發和計時響應的現實需求。
然而,Redis作為一個內存型數據庫,其數據存儲容量有限,需要在和大數據結合上更做進一步的研究;智慧消防的設計尚處于理論階段,云平臺和模型細節仍在研究過程中,因此如何將Redis模型更好地應用于智慧消防系統的建設中,還需要研究與探索,但只要全社會共同努力,相信智慧消防很快來到我們身邊。讓我們共同期待智慧消防早日到來!
參考文獻:
[1]孫超.Redis內存數據庫在智慧消防系統設計中的應用.
[2]丁宏軍.基于物聯網技術的智慧消防建設[J].消防技術與產品信息,2017.
[3]嚴霄鳳,張德馨.大數據研究山.計算機技術與發展,2013.
[4]安科瑞企業微電網設計與應用手冊,2020.06版.