真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

nosqlkv存儲,nosql 列存儲

什么是NoSQL數(shù)據(jù)庫

什么是NoSQL數(shù)據(jù)庫?從名稱“非SQL”或“非關(guān)系型”衍生而來,這些數(shù)據(jù)庫不使用類似SQL的查詢語言,通常稱為結(jié)構(gòu)化存儲。這些數(shù)據(jù)庫自1960年就已經(jīng)存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開始使用它們時,這些數(shù)據(jù)庫才流行起來。該數(shù)據(jù)庫最明顯的優(yōu)勢是擺脫了一組固定的列、連接和類似SQL的查詢語言的限制。有時,NoSQL這個名稱也可能表示“不僅僅SQL”,來確保它們可能支持SQL。 NoSQL數(shù)據(jù)庫使用諸如鍵值、寬列、圖形或文檔之類的數(shù)據(jù)結(jié)構(gòu),并且可以如JSON之類的不同格式存儲。

成都創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達十多年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)整合營銷推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:成都垃圾桶等企業(yè),備受客戶贊美。

一般什么產(chǎn)品或者系統(tǒng)或網(wǎng)站會使用K/V數(shù)據(jù)庫型數(shù)據(jù)庫呢

KV型存儲系統(tǒng)是最常用的NoSQL存儲系統(tǒng)之一。Memcached和Redis是其最具代表的兩個產(chǎn)品。本文將詳細(xì)介紹Memcached和Redis的常用場景及如何構(gòu)建一個高可用和自動彈性伸縮的KV存儲系統(tǒng)。

Cache加DB是最常見的存儲層架構(gòu)。時間局部性原理指出正在被訪問的數(shù)據(jù)很可能會在近期再次被訪問。根據(jù)這一原理應(yīng)用程序?qū)⒆罱L問過的數(shù)據(jù)保存在Cache中,每次讀取請求首先訪問Cache,若Cache中保存有該數(shù)據(jù)則直接獲取數(shù)據(jù)返回給前端。若Cache中該數(shù)據(jù)不存在則從DB獲取數(shù)據(jù)并將該數(shù)據(jù)保存到Cache;若數(shù)據(jù)被更新或刪除則將Cache中對應(yīng)數(shù)據(jù)置為失效。使用Cache能夠很好地緩解DB的讀請求壓力。KV存儲系統(tǒng)既可以應(yīng)用在Cache層也可以應(yīng)用在DB層。

Memcached使用內(nèi)存作為存儲介質(zhì),因為內(nèi)存數(shù)據(jù)的易失性Memcached主要應(yīng)用在Cache層。Memcached常見的應(yīng)用場景是存儲一些讀取頻繁但更新較少的數(shù)據(jù),如靜態(tài)網(wǎng)頁、系統(tǒng)配置及規(guī)則數(shù)據(jù)、活躍用戶的基本數(shù)據(jù)和個性化定制數(shù)據(jù)、準(zhǔn)實時統(tǒng)計信息等。并不是所有場景都適合Memcached加DB的架構(gòu),在某些場景下這一架構(gòu)存在一些局限。例如這一架構(gòu)不能提升寫的性能,寫數(shù)據(jù)時還是數(shù)據(jù)直接存儲到DB,同時需要將Cache中數(shù)據(jù)置為失效,所以對以寫請求為主的應(yīng)用使用Cache提升性能的效果并不是很明顯。如果應(yīng)用的熱點數(shù)據(jù)或者活躍用戶分布較為分散也會降低Cache的命中率。如果遇到機器宕機,內(nèi)存數(shù)據(jù)會丟失,那么機器重啟后需要一段時間重新建立熱點數(shù)據(jù),建立熱點數(shù)據(jù)的過程中會對DB會造成較大的壓力,嚴(yán)重時會導(dǎo)致系統(tǒng)雪崩。

相比Memcached,Redis做了一些優(yōu)化。首先,Redis對數(shù)據(jù)做了持久化,支持AOF和RDB兩種持久化方式,機器重啟后能通過持久化數(shù)據(jù)自動重建內(nèi)存。其次,Redis支持主從復(fù)制,主機會自動將數(shù)據(jù)同步到從機,可以進行讀寫分離,主機負(fù)責(zé)寫操作,從機負(fù)責(zé)讀操作。那樣既增加了系統(tǒng)的讀寫性能又提升了數(shù)據(jù)的可靠性。再次,Redis除了支持string類型的value外還支持string、hash、set、sorted set、list等類型的數(shù)據(jù)結(jié)構(gòu)。因此,Redis既可以應(yīng)用在Cache層,也可以替換或者部分替換DB存儲持久化數(shù)據(jù)。使用Redis作為Cache時機器宕機后熱點數(shù)據(jù)不會丟失,無須像Memcached一樣重建熱點數(shù)據(jù)。相比Cache加DB的架構(gòu)方式,使用Redis存儲持久化數(shù)據(jù)不僅能夠提升讀性能,還能提升寫性能,而且不存在熱點數(shù)據(jù)分布是否集中而影響命中率的問題。Redis豐富的數(shù)據(jù)結(jié)構(gòu)也使其擁有更加豐富的應(yīng)用場景。Redis的命令都是原子性的,可以簡單地利用INCR和DECR實現(xiàn)計數(shù)功能。使用list可以實現(xiàn)獲取最近N個數(shù)的操作。sort set支持對數(shù)據(jù)排序,可以應(yīng)用在排行榜中。set集合可以應(yīng)用到數(shù)據(jù)排重。Redis還支持過期時間設(shè)置,可以應(yīng)用到需要設(shè)定精確過期時間的應(yīng)用。只要可以使用Redis支持的數(shù)據(jù)結(jié)構(gòu)表示的場景,就可以使用Redis進行存儲。但Redis不是萬能的,它不支持關(guān)系型數(shù)據(jù)庫復(fù)雜的SQL操作。某些場景下,可結(jié)合Redis和關(guān)系型DB,將簡單查詢相關(guān)的數(shù)據(jù)保存在Redis中,復(fù)雜SQL操作由關(guān)系型DB完成。

雖然Redis集很多優(yōu)點于一身,但在實際運營中也存在一些問題。首先,Redis不具備自動容錯和恢復(fù)功能,主機從機的宕機都會導(dǎo)致前端部分讀寫請求失敗,需要等待機器重啟或者手動切換前端的IP才能恢復(fù)。如果主機宕機,宕機前有部分?jǐn)?shù)據(jù)未能及時同步到從機,切換IP后還會引入數(shù)據(jù)不一致的問題,降低了系統(tǒng)的可用性。其次,Redis的主從復(fù)制采用全量復(fù)制,復(fù)制過程中主機會fork出一個子進程對內(nèi)存做一份快照,并將子進程的內(nèi)存快照保持為文件發(fā)送給從機,這一過程需要確保主機有足夠多的空余內(nèi)存。若快照文件較大,對集群的服務(wù)能力會產(chǎn)生較大的影響,而且復(fù)制過程是在從機新加入集群或者從機和主機網(wǎng)絡(luò)斷開重連時都會進行,也就是網(wǎng)絡(luò)波動都會造成主機和從機間的一次全量的數(shù)據(jù)復(fù)制,這對實際的系統(tǒng)運營造成了不小的麻煩。最后,Redis較難支持在線擴容,在集群容量達到上限時在線擴容會變得很復(fù)雜。為避免這一問題,運維人員在系統(tǒng)上線時必須確保有足夠的空間,這對資源造成了很大的浪費。

NoSQL非關(guān)系型數(shù)據(jù)庫,K-V型存儲結(jié)構(gòu),那么一個簡單的value值是如何滿足業(yè)務(wù)需求的

value值里可以存放一組數(shù)據(jù),取出來再解析。關(guān)鍵是key的設(shè)計,一般設(shè)計成查詢條件的組合,中間用冒號分隔。

nosql數(shù)據(jù)庫的四種類型

一般將NoSQL數(shù)據(jù)庫分為四大類:鍵值(Key-Value)存儲數(shù)據(jù)庫、列存儲數(shù)據(jù)庫、文檔型數(shù)據(jù)庫和圖形(Graph)數(shù)據(jù)庫。它們的數(shù)據(jù)模型、優(yōu)缺點、典型應(yīng)用場景。

鍵值(Key-Value)存儲數(shù)據(jù)庫Key指向Value的鍵值對,通常用hash表來實現(xiàn)查找速度快數(shù)據(jù)無結(jié)構(gòu)化(通常只被當(dāng)作字符串或者二進制數(shù)據(jù))內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問負(fù)載,也用于一些日志系統(tǒng)等。

列存儲數(shù)據(jù)庫,以列簇式存儲,將同一列數(shù)據(jù)存在一起查找速度快,可擴展性強,更容易進行分布式擴展功能相對局限分布式的文件系統(tǒng)。

文檔型數(shù)據(jù)庫,Key-Value對應(yīng)的鍵值對,Value為結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)要求不嚴(yán)格,表結(jié)構(gòu)可變(不需要像關(guān)系型數(shù)據(jù)庫一樣需預(yù)先定義表結(jié)構(gòu)),查詢性能不高,而且缺乏統(tǒng)一的查詢語法,Web應(yīng)用。

圖形(Graph)數(shù)據(jù)庫,圖結(jié)構(gòu),利用圖結(jié)構(gòu)相關(guān)算法(如最短路徑尋址,N度關(guān)系查找等),很多時候需要對整個圖做計算才能得出需要的信息,而且這種結(jié)構(gòu)不太好做分布式的集群方案,社交網(wǎng)絡(luò),推薦系統(tǒng)等。

一、NoSQL數(shù)據(jù)庫簡介

Web1.0的時代,數(shù)據(jù)訪問量很有限,用一夫當(dāng)關(guān)的高性能的單點服務(wù)器可以解決大部分問題。

隨著Web2.0的時代的到來,用戶訪問量大幅度提升,同時產(chǎn)生了大量的用戶數(shù)據(jù)。加上后來的智能移動設(shè)備的普及,所有的互聯(lián)網(wǎng)平臺都面臨了巨大的性能挑戰(zhàn)。

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,泛指非關(guān)系型的數(shù)據(jù)庫。

NoSQL 不依賴業(yè)務(wù)邏輯方式存儲,而以簡單的key-value模式存儲。因此大大的增加了數(shù)據(jù)庫的擴展能力。

Memcache Memcache Redis Redis MongoDB MongoDB 列式數(shù)據(jù)庫 列式數(shù)據(jù)庫 Hbase Hbase

HBase是Hadoop項目中的數(shù)據(jù)庫。它用于需要對大量的數(shù)據(jù)進行隨機、實時的讀寫操作的場景中。

HBase的目標(biāo)就是處理數(shù)據(jù)量非常龐大的表,可以用普通的計算機處理超過10億行數(shù)據(jù),還可處理有數(shù)百萬列元素的數(shù)據(jù)表。

Cassandra Cassandra

Apache Cassandra是一款免費的開源NoSQL數(shù)據(jù)庫,其設(shè)計目的在于管理由大量商用服務(wù)器構(gòu)建起來的龐大集群上的海量數(shù)據(jù)集(數(shù)據(jù)量通常達到PB級別)。在眾多顯著特性當(dāng)中,Cassandra最為卓越的長處是對寫入及讀取操作進行規(guī)模調(diào)整,而且其不強調(diào)主集群的設(shè)計思路能夠以相對直觀的方式簡化各集群的創(chuàng)建與擴展流程。

主要應(yīng)用:社會關(guān)系,公共交通網(wǎng)絡(luò),地圖及網(wǎng)絡(luò)拓譜(n*(n-1)/2)

什么是kv數(shù)據(jù)庫

一個解決方案是使用鍵值(Key-Value)存儲數(shù)據(jù)庫,這是一種NoSQL(非

關(guān)系型數(shù)據(jù)庫

)模型,其數(shù)據(jù)按照鍵值對的形式進行組織、索引和存儲。KV存儲非常適合不涉及過多數(shù)據(jù)關(guān)系業(yè)務(wù)關(guān)系的業(yè)務(wù)數(shù)據(jù),同時能有效減少讀寫磁盤的次數(shù),比

SQL數(shù)據(jù)庫

存儲擁有更好的讀寫性能。


文章標(biāo)題:nosqlkv存儲,nosql 列存儲
文章網(wǎng)址:http://weahome.cn/article/dsgsdes.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部