當前位置:首頁 » 網頁前端 » 前端的三個儲存方式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端的三個儲存方式

發布時間: 2023-03-17 01:18:32

『壹』 前端本地存儲的 3 種方法 cookie、localStorage、sessionStorage

當網頁要發http請求時,瀏覽器會先檢查是否有相應的cookie,有則自動添加在request header中的cookie欄位中。這些是瀏覽器自動幫我們做的,而且每一次http請求瀏覽器都會自動幫我們做。這個特點很重要,因為這關繫到「什麼樣的數據適合存儲在cookie中」。

存儲在cookie中的數據,每次都會被瀏覽器自動放在http請求中,如果這些數據並不是每個請求都需要發給服務端的數據,瀏覽器這設置自動處理無疑增加了網路開銷;但如果這些數據是每個請求都需要發給服務端的數據(比如身份認證信息),瀏覽器這設置自動處理就大大免去了重復添加操作。所以對於那種設置「每次請求都要攜帶的信息(最典型的就是身份認證信息)」就特別適合放在cookie中,其他類型的數據就不適合了。

不同的瀏覽器存放的cookie位置不一樣,也是不能通用的。

cookie的存儲是以域名形式進行區分的,不同的域下存儲的cookie是獨立的。

我們可以設置cookie生效的域(當前設置cookie所在域的子域),也就是說,我們能夠操作的cookie是當前域以及當前域下的所有子域

一個域名下存放的cookie的個數是有限制的,不同的瀏覽器存放的個數不一樣,一般為20個。

每個cookie存放的內容大小也是有限制的,不同的瀏覽器存放大小不一樣,一般為4KB。

cookie也可以設置過期的時間,默認是會話結束的時候,當時間到期自動銷毀

cookie值既可以設置,也可以讀取。

我們通過document.cookie來獲取當前網站下的cookie的時候,得到的字元串形式的值,它包含了當前網站下所有的cookie(為避免跨域腳本(xss)攻擊,這個方法只能獲取非 HttpOnly 類型的cookie)。它會把所有的cookie通過一個分號+空格的形式串聯起來,例如username=chenfangxu; job=coding

要想修改一個cookie,只需要重新賦值就行,舊的值會被新的值覆蓋。但要注意一點,在設置新cookie時,path/domain這幾個選項一定要舊cookie 保持一樣。否則不會修改舊值,而是添加了一個新的 cookie。

把要刪除的cookie的過期時間設置成已過去的時間,path/domain/這幾個選項一定要舊cookie 保持一樣。

如果我們想長時間存放一個cookie。需要在設置這個cookie的時候同時給他設置一個過期的時間。如果不設置,cookie默認是臨時存儲的,當瀏覽器關閉進程的時候自動銷毀

使用方法: setCookie('username','cfangxu',30)

domain指定了 cookie 將要被發送至哪個或哪些域中。默認情況下,domain 會被設置為創建該 cookie 的頁面所在的域名,所以當給相同域名發送請求時該 cookie 會被發送至伺服器。

瀏覽器會把 domain 的值與請求的域名做一個尾部比較(即從字元串的尾部開始比較),並將匹配的 cookie 發送至伺服器。

cookie 一般都是由於用戶訪問頁面而被創建的,可是並不是只有在創建 cookie 的頁面才可以訪問這個 cookie。 因為安全方面的考慮,默認情況下,只有與創建 cookie 的頁面在同一個目錄或子目錄下的網頁才可以訪問。即path屬性可以為伺服器特定文檔指定cookie,這個屬性設置的url且帶有這個前綴的url路徑都是有效的。

domain是域名,path是路徑,兩者加起來就構成了 URL,domain和path一起來限制 cookie 能被哪些 URL 訪問。 所以domain和path兩個個選項共同決定了cookie何時被瀏覽器自動添加到請求頭部中發送出去。如果沒有設置這兩個選項,則會使用默認值。domain的默認值為設置該cookie的網頁所在的域名,path默認值為設置該cookie的網頁所在的目錄。

通常 cookie 信息都是使用HTTP連接傳遞數據,這種傳遞方式很容易被查看,所以 cookie 存儲的信息容易被竊取。假如 cookie 中所傳遞的內容比較重要,那麼就要求使用加密的數據傳輸。

secure選項用來設置cookie只在確保安全的請求中才會發送。當請求是HTTPS或者其他安全協議時,包含 secure 選項的 cookie 才能被發送至伺服器。

把cookie設置為secure,只保證 cookie 與伺服器之間的數據傳輸過程加密,而保存在本地的 cookie文件並不加密。就算設置了secure 屬性也並不代表他人不能看到你機器本地保存的 cookie 信息。機密且敏感的信息絕不應該在 cookie 中存儲或傳輸,因為 cookie 的整個機制原本都是不安全的

注意:如果想在客戶端即網頁中通過 js 去設置secure類型的 cookie,必須保證網頁是https協議的。在http協議的網頁中是無法設置secure類型cookie的。

這個選項用來設置cookie是否能通過 js 去訪問。默認情況下,cookie不會帶httpOnly選項(即為空),所以默認情況下,客戶端是可以通過js代碼去訪問(包括讀取、修改、刪除等)這個cookie的。

當cookie帶httpOnly選項時,客戶端則無法通過js代碼去訪問(包括讀取、修改、刪除等)這個cookie。 在客戶端是不能通過js代碼去設置一個httpOnly類型的cookie的,這種類型的cookie只能通過服務端來設置。

HTML5新方法,不過IE8及以上瀏覽器都兼容。

生命周期:持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。

存儲的信息在同一域中是共享的。

當本頁操作(新增、修改、刪除)了localStorage的時候,本頁面不會觸發storage事件,但是別的頁面會觸發storage事件。

大小:據說是5M(跟瀏覽器廠商有關系)

localStorage本質上是對字元串的讀取,如果存儲內容多的話會消耗內存空間,會導致頁面變卡

localStorage受同源策略的限制

當storage發生改變的時候觸發。 當頁面對storage的操作會觸發其他頁面的storage事件,storage事件是可以跨頁面通訊的,在你對storage對象進行任何操作的時候,都會觸發storage事件,事件里邊包括包括:

storage事件使用參考

對於sessionStorage和localStorage上的任何更改都會觸發storage事件,但storage事件不會區分這兩者;

其實跟localStorage差不多,也是本地存儲,會話本地存儲

和 localStorage 的API完全相同

用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問並且當會話結束後數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。也就是說只要這個瀏覽器窗口沒有關閉,即使刷新頁面或進入同源另一頁面,數據仍然存在。關閉標簽頁後,sessionStorage即被銷毀,或者在新的標簽頁打開同源的另一個頁面,sessionStorage也是沒有的。

應用的場景有,比如說我們都知道,在頁面刷新的時候,我們寫的js里邊的變數函數等等的,內存會被釋放掉,那麼這個時候可以用sessionStorage來存儲一些不想被釋放掉內存的數據,比如說記錄一個滾動條的位置,或者播放器的進度等等

在本地(瀏覽器端)存儲數據

sessionStorage和localStorage 都受到同源策略限制,就是跨域問題,在訪問sessionStorage和localStorage 的時候,頁面必須在同一個域名,使用同一個協議,並且一個埠

sessionStorage比localStorage更嚴苛一點,除了協議、主機名、埠外,還要求在同一窗口(也就是瀏覽器的標簽頁)下。

localStorage是永久存儲,除非手動刪除。

sessionStorage當會話結束(當前頁面、標簽頁關閉的時候,自動銷毀)

cookie的數據會在每一次發送http請求的時候,同時發送給伺服器而localStorage、sessionStorage不會。

sessionStorage和localStorage 也有大小限制,相比cookie大了很多,是5M

sessionStorage和localStorage只能通過客戶端操作,cookie既可以通過客戶端操作又可以通過服務端操作

『貳』 說一下前端數據存儲方式(cookies,localstorage,sessionstorage,indexedDB)的區別

Cookie最初是在客戶端用於存儲會話信息的,其要求伺服器對任意HTTP請求發送Set-CookieHTTP頭作為響應的一部分。cookie
以name為名稱,以value為值,名和值在傳送時都必須是URL編碼的。瀏覽器會存儲這樣的會話信息,在這之後,通過為每個請求添加Cookie
HTTP頭將信息發送回伺服器。

localstorage

存儲方式:

以鍵值對(Key-Value)的方式存儲,永久存儲,永不失效,除非手動刪除。

sessionstorage

HTML5 的本地存儲 API 中的 localStorage 與 sessionStorage 在使用方法上是相同的,區別在於 sessionStorage 在關閉頁面後即被清空,而 localStorage 則會一直保存。

IndexedDB

索引資料庫(IndexedDB) API(作為 HTML5 的一部分)對創建具有豐富本地存儲數據的數據密集型的離線 HTML5 Web 應用程序很有用。同時它還有助於本地緩存數據,使傳統在線 Web 應用程序(比如移動 Web 應用程序)能夠更快地運行和響應。

『叄』 誰能簡述三大網路存儲

網路存儲結構大致分為三種:直連式存儲、網路存儲設備和存儲網路。
1、開放系統的直連式存儲(Direct-Attached Storage,簡稱DAS)已經有近四十年的使用歷史,隨著用戶數據的不斷增長,尤其是數百GB以上時,其在備份、恢復、擴展、災備等方面的問題變得日益困擾系統管理員。直連式存儲與伺服器主機之間的連接通道通常採用SCSI連接,隨著伺服器CPU的處理能力越來越強,存儲硬碟空間越來越大,陣列的硬碟數量越來越多,SCSI通道將會成為IO瓶頸;伺服器主機SCSI ID資源有限,能夠建立的SCSI通道連接有限。
2、NAS(Network Attached Storage:網路附屬存儲)按字面簡單說就是連接在網路上,具備資料存儲功能的裝置,因此也稱為「網路存儲器」。它是一種專用數據存儲伺服器。它以數據為中心,將存儲設備與伺服器徹底分離,集中管理數據,從而釋放帶寬、提高性能、降低總擁有成本、保護投資。其成本遠遠低於使用伺服器存儲,而效率卻遠遠高於後者。目前國際著名的NAS企業有Netapp、EMC、OUO等。
3、SAN(Storage Area Network )是一個集中式管理的高速存儲網路,由多供應商存儲系統、存儲管理軟體、應用程序伺服器和網路硬體組成,能夠幫助您充分利用您所擁有的商業信息的價值。由於SAN的基礎是存儲介面,所以是與傳統網路不同的一種網路,常常被稱為伺服器後面的網路。

『肆』 HTML5的5種存儲方式詳解

引言

本篇文章主要介紹了前端HTML5幾種存儲方式的總結 ,主要包括本地存儲localstorage,本地存儲sessionstorage,離線緩存(application cache),Web SQL,IndexedDB。有興趣的可以了解一下。

正文開始~

h5之前,存儲主要是用cookies。cookies缺點有在請求頭上帶著數據,大小是4k之內。主Domain污染。

主要應用:購物車、客戶登錄

對於IE瀏覽器有UserData,大小是64k,只有IE瀏覽器支持。

目標

存儲方式:

以鍵值對(Key-Value)的方式存儲,永久存儲,永不失效,除非手動刪除。

大小:

每個域名5M

支持情況:

注意:IE9 localStorage不支持本地文件,需要將項目署到伺服器,才可以支持!

常用的API:

getItem //取記錄

setIten//設置記錄

removeItem//移除記錄

key//取key所對應的值

clear//清除記錄

存儲的內容:

數組,圖片,json,樣式,腳本。。。(只要是能序列化成字元串的內容都可以存儲)

HTML5 的本地存儲 API 中的 localStorage 與 sessionStorage 在使用方法上是相同的,區別在於 sessionStorage 在關閉頁面後即被清空,而 localStorage 則會一直保存。

本地緩存應用所需的文件

使用方法:

①配置manifest文件

頁面上:

Manifest 文件:

manifest 文件是簡單的文本文件,它告知瀏覽器被緩存的內容(以及不緩存的內容)。

manifest 文件可分為三個部分:

①CACHE MANIFEST - 在此標題下列出的文件將在首次下載後進行緩存

②NETWORK - 在此標題下列出的文件需要與伺服器的連接,且不會被緩存

③FALLBACK - 在此標題下列出的文件規定當頁面無法訪問時的回退頁面(比如 404 頁面)

完整demo:

伺服器上: manifest文件需要配置正確的MIME-type,即 "text/cache-manifest"。

如Tomcat:

常用API:

核心是applicationCache對象,有個status屬性,表示應用緩存的當前狀態:

0(UNCACHED) : 無緩存, 即沒有與頁面相關的應用緩存

1(IDLE) : 閑置,即應用緩存未得到更新

2 (CHECKING) : 檢查中,即正在下載描述文件並檢查更新

3 (DOWNLOADING) : 下載中,即應用緩存正在下載描述文件中指定的資源

4 (UPDATEREADY) : 更新完成,所有資源都已下載完畢

5 (IDLE) : 廢棄,即應用緩存的描述文件已經不存在了,因此頁面無法再訪問應用緩存

相關的事件:

表示應用緩存狀態的改變:

checking : 在瀏覽器為應用緩存查找更新時觸發

error : 在檢查更新或下載資源期間發送錯誤時觸發

noupdate : 在檢查描述文件發現文件無變化時觸發

downloading : 在開始下載應用緩存資源時觸發

progress:在文件下載應用緩存的過程中持續不斷地下載地觸發

updateready : 在頁面新的應用緩存下載完畢觸發

cached : 在應用緩存完整可用時觸發

Application Cache的三個優勢:

① 離線瀏覽

② 提升頁面載入速度

③ 降低伺服器壓力

注意事項:

1. 瀏覽器對緩存數據的容量限制可能不太一樣(某些瀏覽器設置的限制是每個站點 5MB)

2. 如果manifest文件,或者內部列舉的某一個文件不能正常下載,整個更新過程將視為失敗,瀏覽器繼續全部使用老的緩存

3. 引用manifest的html必須與manifest文件同源,在同一個域下

4. 瀏覽器會自動緩存引用manifest文件的HTML文件,這就導致如果改了HTML內容,也需要更新版本才能做到更新。

6. FALLBACK中的資源必須和manifest文件同源

7. 更新完版本後,必須刷新一次才會啟動新版本(會出現重刷一次頁面的情況),需要添加監聽版本事件。

8. 站點中的其他頁面即使沒有設置manifest屬性,請求的資源如果在緩存中也從緩存中訪問

9. 當manifest文件發生改變時,資源請求本身也會觸發更新

離線緩存與傳統瀏覽器緩存區別:

1. 離線緩存是針對整個應用,瀏覽器緩存是單個文件

2. 離線緩存斷網了還是可以打開頁面,瀏覽器緩存不行

3. 離線緩存可以主動通知瀏覽器更新資源

關系資料庫,通過SQL語句訪問

Web SQL 資料庫 API 並不是 HTML5 規范的一部分,但是它是一個獨立的規范,引入了一組使用 SQL 操作客戶端資料庫的 APIs。

支持情況:

Web SQL 資料庫可以在最新版的 Safari, Chrome 和 Opera 瀏覽器中工作。

核心方法:

①openDatabase: 這個方法使用現有的資料庫或者新建的資料庫創建一個資料庫對象。

②transaction: 這個方法讓我們能夠控制一個事務,以及基於這種情況執行提交或者回滾。

③executeSql: 這個方法用於執行實際的 SQL 查詢。

打開資料庫:

執行查詢操作:

插入數據:

讀取數據:

由這些操作可以看出,基本上都是用SQL語句進行資料庫的相關操作,如果你會MySQL的話,這個應該比較容易用。

索引資料庫 (IndexedDB) API(作為 HTML5 的一部分)對創建具有豐富本地存儲數據的數據密集型的離線 HTML5 Web 應用程序很有用。同時它還有助於本地緩存數據,使傳統在線 Web 應用程序(比如移動 Web 應用程序)能夠更快地運行和響應。

非同步API:

在IndexedDB大部分操作並不是我們常用的調用方法,返回結果的模式,而是請求——響應的模式,比如打開資料庫的操作

這樣,我們打開資料庫的時候,實質上返回了一個DB對象,而這個對象就在result中。由上圖可以看出,除了result之外。還有幾個重要的屬性就是onerror、onsuccess、onupgradeneeded(我們請求打開的資料庫的版本號和已經存在的資料庫版本號不一致的時候調用)。這就類似於我們的ajax請求那樣。我們發起了這個請求之後並不能確定它什麼時候才請求成功,所以需要在回調中處理一些邏輯。

關閉與刪除:

數據存儲:

indexedDB中沒有表的概念,而是objectStore,一個資料庫中可以包含多個objectStore,objectStore是一個靈活的數據結構,可以存放多種類型數據。也就是說一個objectStore相當於一張表,裡面存儲的每條數據和一個鍵相關聯。

我們可以使用每條記錄中的某個指定欄位作為鍵值(keyPath),也可以使用自動生成的遞增數字作為鍵值(keyGenerator),也可以不指定。選擇鍵的類型不同,objectStore可以存儲的數據結構也有差異。

學習從來不是一個人的事情,要有個相互監督的夥伴,想要學習或交流前端問題的小夥伴可以私信「學習」小明獲取web前端入門資料,一起學習,一起成長!

『伍』 簡述計算機存儲系統的三級存儲體系概念

計算機存儲器包括主存(main memory),輔存(mass storage)和寄存器(register)。主存就是平時所說的內存,計算機運行時操作系統和其它進程的代碼存儲在其中。輔存主要指硬碟,也包括其它輔助存儲設備,如軟盤,U盤,光碟等,可以存放大量數據。寄存器位於CPU內,在指令執行時起臨時存放作用。

寄存器和主存、主存和輔存之間存在不停的數據傳輸和交流,其速度和容量就影響了計算機的性能。如果寄存器和主存之間每條指令和每個數據都進行一次傳輸,那麼計算機的運行速度就受到限制。因此出現了高速緩沖存儲器(cache memory),用於成批處理寄存器內的數據,以同主存進行交流。而且頻繁使用的數據,CPU可以直接從高速緩存中讀取,減少CPU的等待時間,提高系統效率。內存的容量有限,有時不能一次載入硬碟中所需的數據,這里會出現虛擬存儲(virtual memory)的概念。虛擬存儲是指當要接收的數據超過內存容量時,系統會在硬碟內分配足夠的空間存儲這些數據,再把這些數據分成很多頁(page),再根據需要實時地把一定的頁載入內存,這樣用戶感覺內存的容量就比真實的容量偏大。

另外,緩沖區(buffer)是用於存儲速度不同步的設備或優先順序不同的設備之間傳輸數據的區域,使進程之間的相互等待變少,從而使從速度慢的設備讀入數據時,速度快的設備的操作進程不發生間斷。

這里再順便說下離線(spooling)的概念。離線是指當多個進程要求同時使用非共享資源如列印機時,系統會根據需求把所有的數據同時讀取到硬碟,再在列印機上逐個列印,這樣給用戶的感覺就是一台列印機同時列印多個進程包含的文件。

以下引用主要區別高速緩存(cache)和緩沖區(buffer):

Cache:高速緩存,是位於CPU與主內存間的一種容量較小但速度很高的存儲器。由於CPU的速度遠高於主內存,CPU直接從內存中存取數據要等待一定時間周期, Cache中保存著CPU剛用過或循環使用的一部分數據,當CPU再次使用該部分數據時可從Cache中直接調用,這樣就減少了CPU的等待時間,提高了系統的效率。Cache又分為一級Cache(L1 Cache)和二級Cache(L2 Cache),L1 Cache集成在CPU內部,L2 Cache早期一般是焊在主板上,現在也都集成在CPU內部,常見的容量有256KB或512KB L2 Cache。

Buffer:緩沖區,一個用於存儲速度不同步的設備或優先順序不同的設備之間傳輸數據的區域。通過緩沖區,可以使進程之間的相互等待變少,從而使從速度慢的設備讀入數據時,速度快的設備的操作進程不發生間斷。

Buffer和cache都是佔用內存:

Buffer: 作為buffer cache的內存,是塊設備的讀寫緩沖區

Cache: 作為page cache的內存, 文件系統的cache
如果cache的值很大,說明cache住的文件數很多。如果頻繁訪問到的文件都能被cache住,那麼磁碟的讀IO bi會非常小。

『陸』 cookie前端存儲有哪幾種

1、cookie
HTTP cookie,通常直接叫做cookie,是客戶端用來存儲數據的一種選項,它既可以在客戶端設置也可以在伺服器端設置。cookie會跟隨任意HTTP請求一起發送。
優點:兼容性好
缺點:一是增加了網路流量;二則是它的數據容量有限,最多隻能存儲4KB的數據,瀏覽器之間各有不同;三是不安全。
2、userData
userData是微軟通過一個自定義行為引入的持久化用戶數據的概念。用戶數據允許每個文檔最多128KB數據,每個域名最多1MB數據。
缺點:userData不是 web 標準的一部分,只有IE支持。
3、web存儲機制
web storage,包括兩種:sessionStorage 和 localStorage,前者嚴格用於一個瀏覽器會話中存儲數據,因為數據在瀏覽器關閉後會立即刪除;後者則用於跨會話持久化地存儲數據。
缺點:IE不支持 SessionStorage,低版本IE ( IE6, IE7 ) 不支持 LocalStorage,並且不支持查詢語言
4、indexedDB
indexed Database API,簡稱為indexedDB,是在瀏覽器中保存結構化數據的一種「資料庫」。它類似SQL資料庫的結構化數據存儲機制,代替了廢棄已久的web SQL Database API,它能夠在客戶端存儲大量的結構化數據,並且使用索引高效檢索的API。
缺點:兼容性不好,未得到大部分瀏覽器的支持。
5、Flash cookie
Flash本地存儲,類似於HTTP cookie,它是利用 SharedObject類來實現本地存儲信息。它默認允許每個站點存儲不超過100K的數據,遠大於cookie,而且能夠跨瀏覽器。
缺點:瀏覽器需安裝 Flash 控制項,畢竟它是通過Flash的類來存儲。所幸的是,沒有安裝Flash的用戶極少。
6、Google Gears
Google Gears是Google在07年發布的一個開源瀏覽器插件,Gears 內置了一個基於SQLite的嵌入式 SQL資料庫,並提供了統一API 對 資料庫進行訪問,在取得用戶授權之後,每個站點可以在SQL資料庫中存儲「不限大小」的數據。
缺點:需要安裝 Google Gears 組件

『柒』 四大存儲方式技術解析其優劣勢

四大存儲方式技術解析其優劣勢

數據存放問題非常重要,然而在實際應用中卻是錯事連連。經常會出現掉盤、卷鎖死等諸多問題,嚴重影響了整體系統的正常使用,所以數據專用存儲已經成為市場上最關注的安防產品之一。

數據傳統存儲方式

在目前的數字領域中,最常用的無非是如下四種存儲方式:硬碟、DAS、nas、san。

1. 硬碟

無論是dvr、dvs後掛硬碟還是伺服器後面直接連接擴展櫃的方式,都是採用硬碟進行存儲方式。應該說採用硬碟方式進行的存儲,並不能算作嚴格意義上的存儲系統。其原因有以下幾點:

第一,其一般不具備raid系統,對於硬碟上的數據沒有進行冗餘保護,即使有也是通過主機端的raid卡或者軟raid實現。嚴重的影響整體性能;

第二,其擴展能力極為有限,當錄像時間超過60天時,往往不能滿足錄像時間的存儲需求;

第三,無法實現數據集中存儲,後期維護成本較高,特別是在dvs後掛硬碟的方式,其維護成本往往在一年之內就超過了購置成本。

應該說硬碟存儲方式不適合大型數字視頻監控系統的應用。特別是需要長時間錄像的數字視頻監控系統。一般這種方式都是與其它存儲方式並存於同一系統中,作為其他存儲方式的緩沖或應急替代。

2. DAS(直接附加存儲)

DAS(direct attached storage),全稱為直接連接附加存儲,採用DAS的方式可以很簡單的實現平台的容量擴容,同時對數據可以提供多種rald級別的保護。

採用DAS方式時。在視頻存儲單元上部署相關的.hba卡。用於跟後端的存儲設備建立數據通道。前端的視頻存儲單元可以是dvr,也可以是視頻存儲伺服器。其通道可以採用光纖、ip網線、sas線纜甚至於usb、1394線等。

採用DAS方式並不能同時支持很多視頻存儲服務單元同時接入,而且其擴容能力嚴重依賴所選擇的存儲設備自身的擴容能力。所以在大型數字視頻監控系統中,應用DAS存儲方式將造成系統維護難度的極大提升。

正是由於DAS存儲的這些特點,所以這種存儲方式一般應用於對於dvr的擴容或者小型數字視頻監控項目中。

3. NAS(網路附加存儲)

NAS(network attached storage)。全稱為網路附加存儲,是一種專業的網路文件存儲及文件備份設備,或稱為網路直聯存儲設備、網路磁碟陣列。同時NAS對數據可以提供多種raid級別的保護。

NAS設備和多台視頻存儲服務單元均通過ip網路進行連接,按照tcp/ip協議進行通信,以文件的i/o(輸入/輸出)方式進行數據傳輸。一個NAS單元包括核心處理器,文件服務管理工具,一個或者多個的硬碟驅動器用於數據的存儲。

採用NAS方式可以同時支持多個主機端同時進行讀寫,具備非常優秀的共享性能和擴展能力;同時NAS可以應用在復雜的網路環境中。部署也非常靈活。

但是由於NAS採用cif/nfs協議進行數據的文件級傳輸,所以網路開銷非常大,特別是在寫入數據時帶寬的利用率一般只有20%-40%之間。所以目前NAS一般應用於小型的網路數字視頻監控系統中或者只是用於部分數據的共享存儲。

4. SAN(存儲區域網路)

SAN(storage area network),全稱為存儲區域網路,通過交換機等連接設備將磁碟陣列與相關伺服器連接起來的高速專用子網。同時SAN對數據可以提供多種raid級別的保護。

SAN提供了一個專用的、高可靠性的存儲網路。允許獨立地增加它們的存儲容量,也使得管理及集中控制(特別是對於全部存儲設備都集中在一起的時候) 更加簡化。正是由於這些特點,SAN架構特別適合於大型網路數字視頻監控系統的存儲應用,可以應對上千、上萬個前端監控點的存儲。

目前 SAN主要分為FC―SAN(光纖存儲區域網路)和ip―SAN(乙太網存儲區域網路)。它們之間的區別是連接線路以及使用數據傳輸協議的不同。雖然 FC―SAN由於採用專用協議可以保證傳輸時更加穩定、高效,但其部署方式、構建成本均較之ip―SAN高出很多,所以目前在大型網路數字視頻監控系統中更多採用的是ip―SAN架構。

;

『捌』 大數據時代下的三種存儲架構

大數據時代下的三種存儲架構_數據分析師考試

大數據時代,移動互聯、社交網路、數據分析、雲服務等應用的迅速普及,對數據中心提出革命性的需求,存儲基礎架構已經成為IT核心之一。政府、軍隊軍工、科研院所、航空航天、大型商業連鎖、醫療、金融、新媒體、廣電等各個領域新興應用層出不窮。數據的價值日益凸顯,數據已經成為不可或缺的資產。作為數據載體和驅動力量,存儲系統成為大數據基礎架構中最為關鍵的核心。

傳統的數據中心無論是在性能、效率,還是在投資收益、安全,已經遠遠不能滿足新興應用的需求,數據中心業務急需新型大數據處理中心來支撐。除了傳統的高可靠、高冗餘、綠色節能之外,新型的大數據中心還需具備虛擬化、模塊化、彈性擴展、自動化等一系列特徵,才能滿足具備大數據特徵的應用需求。這些史無前例的需求,讓存儲系統的架構和功能都發生了前所未有的變化。

基於大數據應用需求,「應用定義存儲」概念被提出。存儲系統作為數據中心最核心的數據基礎,不再僅是傳統分散的、單一的底層設備。除了要具備高性能、高安全、高可靠等特徵之外,還要有虛擬化、並行分布、自動分層、彈性擴展、異構資源整合、全局緩存加速等多方面的特點,才能滿足具備大數據特徵的業務應用需求。

尤其在雲安防概念被熱炒的時代,隨著高清技術的普及,720P、1080P隨處可見,智能和高清的雙向需求、動輒500W、800W甚至上千萬更高解析度的攝像機面市,大數據對存儲設備的容量、讀寫性能、可靠性、擴展性等都提出了更高的要求,需要充分考慮功能集成度、數據安全性、數據穩定性,系統可擴展性、性能及成本各方面因素。

目前市場上的存儲架構如下:

(1)基於嵌入式架構的存儲系統

節點NVR架構主要面向小型高清監控系統,高清前端數量一般在幾十路以內。系統建設中沒有大型的存儲監控中心機房,存儲容量相對較小,用戶體驗度、系統功能集成度要求較高。在市場應用層面,超市、店鋪、小型企業、政法行業中基本管理單元等應用較為廣泛。

(2)基於X86架構的存儲系統

平台SAN架構主要面向中大型高清監控系統,前端路數成百上千甚至上萬。一般多採用IPSAN或FCSAN搭建高清視頻存儲系統。作為監控平台的重要組成部分,前端監控數據通過錄像存儲管理模塊存儲到SAN中。

此種架構接入高清前端路數相對節點NVR有了較高提升,具備快捷便利的可擴展性,技術成熟。對於IPSAN而言,雖然在ISCSI環節數據並發讀寫傳輸速率有所消耗,但其憑借擴展性良好、硬體平台通用、海量數據可充分共享等優點,仍然得到很多客戶的青睞。FCSAN在行業用戶、封閉存儲系統中應用較多,比如縣級或地級市高清監控項目,大數據量的並發讀寫對千兆網路交換提出了較大的挑戰,但應用FCSAN構建相對獨立的存儲子系統,可以有效解決上述問題。

面對視頻監控系統大文件、隨機讀寫的特點,平台SAN架構系統不同存儲單元之間的數據共享冗餘方面還有待提高;從高性能伺服器轉發視頻數據到存儲空間的策略,從系統架構而言也增加了隱患故障點、ISCSI帶寬瓶頸導致無法充分利用硬體數據並發性能、接入前端數據較少。上述問題催生了平台NVR架構解決方案。

該方案在系統架構上省去了存儲伺服器,消除了上文提到的性能瓶頸和單點故障隱患。大幅度提高存儲系統的寫入和檢索速度;同時也徹底消除了傳統文件系統由於供電和網路的不穩定帶來的文件系統損壞等問題。

平台NVR中存儲的數據可同時供多個客戶端隨時查詢,點播,當用戶需要查看多個已保存的視頻監控數據時,可通過授權的視頻監控客戶端直接查詢並點播相應位置的視頻監控數據進行歷史圖像的查看。由於數據管理伺服器具有監控系統所有監控點的錄像文件的索引,因此通過平台CMS授權,視頻監控客戶端可以查詢並點播整個監控系統上所有監控點的數據,這個過程對用戶而言也是透明的。

(3)基於雲技術的存儲方案

當前,安防行業可謂「雲」山「物」罩。隨著視頻監控的高清化和網路化,存儲和管理的視頻數據量已有海量之勢,雲存儲技術是突破IP高清監控存儲瓶頸的重要手段。雲存儲作為一種服務,在未來安防監控行業有著客觀的應用前景。

與傳統存儲設備不同,雲存儲不僅是一個硬體,而是一個由網路設備、存儲設備、伺服器、軟體、接入網路、用戶訪問介面以及客戶端程序等多個部分構成的復雜系統。該系統以存儲設備為核心,通過應用層軟體對外提供數據存儲和業務服務。

一般分為存儲層、基礎管理層、應用介面層以及訪問層。存儲層是雲存儲系統的基礎,由存儲設備(滿足FC協議、iSCSI協議、NAS協議等)構成。基礎管理層是雲存儲系統的核心,其擔負著存儲設備間協同工作,數據加密,分發以及容災備份等工作。應用介面層是系統中根據用戶需求來開發的部分,根據不同的業務類型,可以開發出不同的應用服務介面。訪問層指授權用戶通過應用介面來登錄、享受雲服務。其主要優勢在於:硬體冗餘、節能環保、系統升級不會影響存儲服務、海量並行擴容、強大的負載均衡功能、統一管理、統一向外提供服務,管理效率高,雲存儲系統從系統架構、文件結構、高速緩存等方面入手,針對監控應用進行了優化設計。數據傳輸可採用流方式,底層採用突破傳統文件系統限制的流媒體數據結構,大幅提高了系統性能。

高清監控存儲是一種大碼流多並發寫為主的存儲應用,對性能、並發性和穩定性等方面有很高的要求。該存儲解決方案採用獨特的大緩存順序化演算法,把多路隨機並發訪問變為順序訪問,解決了硬碟磁頭因頻繁尋道而導致的性能迅速下降和硬碟壽命縮短的問題。

針對系統中會產生PB級海量監控數據,存儲設備的數量達數十台上百台,因此管理方式的科學高效顯得十分重要。雲存儲可提供基於集群管理技術的多設備集中管理工具,具有設備集中監控、集群管理、系統軟硬體運行狀態的監控、主動報警,圖像化系統檢測等功能。在海量視頻存儲檢索應用中,檢索性能尤為重要。傳統文件系統中,文件檢索採用的是「目錄-》子目錄-》文件-》定位」的檢索步驟,在海量數據的高清視頻監控,目錄和文件數量十分可觀,這種檢索模式的效率就會大打折扣。採用序號文件定位可以有效解決該問題。

雲存儲可以提供非常高的的系統冗餘和安全性。當在線存儲系統出現故障後,熱備機可以立即接替服務,當故障恢復時,服務和數據回遷;若故障機數據需要調用,可以將故障機的磁碟插入到冷備機中,實現所有數據的立即可用。

對於高清監控系統,隨著監控前端的增加和存儲時間的延長,擴展能力十分重要。市場中已有友商可提供單純針對容量的擴展櫃擴展模式和性能容量同步線性擴展的堆疊擴展模式。

雲存儲系統除上述優點之外,在平台對接整合、業務流程梳理、視頻數據智能分析深度挖掘及成本方面都將面臨挑戰。承建大型系統、構建雲存儲的商業模式也亟待創新。受限於寬頻網路、web2.0技術、應用存儲技術、文件系統、P2P、數據壓縮、CDN技術、虛擬化技術等的發展,未來雲存儲還有很長的路要走。

以上是小編為大家分享的關於大數據時代下的三種存儲架構的相關內容,更多信息可以關注環球青藤分享更多干貨