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