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