成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

nosql存儲背景,nosql數(shù)據(jù)庫四種存儲模式

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

2. 什么是NoSQL?

成都創(chuàng)新互聯(lián)公司主營武鄉(xiāng)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,武鄉(xiāng)h5小程序定制開發(fā)搭建,武鄉(xiāng)網(wǎng)站營銷推廣歡迎武鄉(xiāng)等地區(qū)企業(yè)咨詢

2.1 NoSQL 概述

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,

泛指非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題,包括超大規(guī)模數(shù)據(jù)的存儲。

(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴(kuò)展。

2.2 NoSQL代表

MongDB、 Redis、Memcache

3. 關(guān)系型數(shù)據(jù)庫與NoSQL的區(qū)別?

3.1 RDBMS

高度組織化結(jié)構(gòu)化數(shù)據(jù)

結(jié)構(gòu)化查詢語言(SQL)

數(shù)據(jù)和關(guān)系都存儲在單獨的表中。

數(shù)據(jù)操縱語言,數(shù)據(jù)定義語言

嚴(yán)格的一致性

基礎(chǔ)事務(wù)

ACID

關(guān)系型數(shù)據(jù)庫遵循ACID規(guī)則

事務(wù)在英文中是transaction,和現(xiàn)實世界中的交易很類似,它有如下四個特性:

A (Atomicity) 原子性

原子性很容易理解,也就是說事務(wù)里的所有操作要么全部做完,要么都不做,事務(wù)成功的條件是事務(wù)里的所有操作都成功,只要有一個操作失敗,整個事務(wù)就失敗,需要回滾。比如銀行轉(zhuǎn)賬,從A賬戶轉(zhuǎn)100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。

C (Consistency) 一致性

一致性也比較容易理解,也就是說數(shù)據(jù)庫要一直處于一致的狀態(tài),事務(wù)的運行不會改變數(shù)據(jù)庫原本的一致性約束。

I (Isolation) 獨立性

所謂的獨立性是指并發(fā)的事務(wù)之間不會互相影響,如果一個事務(wù)要訪問的數(shù)據(jù)正在被另外一個事務(wù)修改,只要另外一個事務(wù)未提交,它所訪問的數(shù)據(jù)就不受未提交事務(wù)的影響。比如現(xiàn)有有個交易是從A賬戶轉(zhuǎn)100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的

D (Durability) 持久性

持久性是指一旦事務(wù)提交后,它所做的修改將會永久的保存在數(shù)據(jù)庫上,即使出現(xiàn)宕機(jī)也不會丟失。

3.2 NoSQL

代表著不僅僅是SQL

沒有聲明性查詢語言

沒有預(yù)定義的模式

鍵 - 值對存儲,列存儲,文檔存儲,圖形數(shù)據(jù)庫

最終一致性,而非ACID屬性

非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù)

CAP定理

高性能,高可用性和可伸縮性

分布式數(shù)據(jù)庫中的CAP原理(了解)

CAP定理:

Consistency(一致性), 數(shù)據(jù)一致更新,所有數(shù)據(jù)變動都是同步的

Availability(可用性), 好的響應(yīng)性能

Partition tolerance(分區(qū)容錯性) 可靠性

P: 系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運作。

定理:任何分布式系統(tǒng)只可同時滿足二點,沒法三者兼顧。

CAP理論的核心是:一個分布式系統(tǒng)不可能同時很好的滿足一致性,可用性和分區(qū)容錯性這三個需求,

因此,根據(jù) CAP 原理將 NoSQL 數(shù)據(jù)庫分成了滿足 CA 原則、滿足 CP 原則和滿足 AP 原則三 大類:

CA - 單點集群,滿足一致性,可用性的系統(tǒng),通常在可擴(kuò)展性上不太強(qiáng)大。

CP - 滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高。

AP - 滿足可用性,分區(qū)容忍性的系統(tǒng),通常可能對一致性要求低一些。

CAP理論就是說在分布式存儲系統(tǒng)中,最多只能實現(xiàn)上面的兩點。

而由于當(dāng)前的網(wǎng)絡(luò)硬件肯定會出現(xiàn)延遲丟包等問題,所以分區(qū)容忍性是我們必須需要實現(xiàn)的。

所以我們只能在一致性和可用性之間進(jìn)行權(quán)衡,沒有NoSQL系統(tǒng)能同時保證這三點。

說明:C:強(qiáng)一致性 A:高可用性 P:分布式容忍性

舉例:

CA:傳統(tǒng)Oracle數(shù)據(jù)庫

AP:大多數(shù)網(wǎng)站架構(gòu)的選擇

CP:Redis、Mongodb

注意:分布式架構(gòu)的時候必須做出取舍。

一致性和可用性之間取一個平衡。多余大多數(shù)web應(yīng)用,其實并不需要強(qiáng)一致性。

因此犧牲C換取P,這是目前分布式數(shù)據(jù)庫產(chǎn)品的方向。

4. 當(dāng)下NoSQL的經(jīng)典應(yīng)用

當(dāng)下的應(yīng)用是 SQL 與 NoSQL 一起使用的。

代表項目:阿里巴巴商品信息的存放。

去 IOE 化。

ps:I 是指 IBM 的小型機(jī),很貴的,好像好幾萬一臺;O 是指 Oracle 數(shù)據(jù)庫,也很貴的,好幾萬呢;M 是指 EMC 的存儲設(shè)備,也很貴的。

難點:

數(shù)據(jù)類型多樣性。

數(shù)據(jù)源多樣性和變化重構(gòu)。

數(shù)據(jù)源改造而服務(wù)平臺不需要大面積重構(gòu)。

互聯(lián)網(wǎng)背景下,為什么用NoSql

本文將從單機(jī)MySQL的場景出發(fā),簡述一下隨著網(wǎng)站的訪問量越來越大,數(shù)據(jù)庫部署的演進(jìn)過程,到為什么要用MySQL的必要性。

大數(shù)據(jù)時代的數(shù)據(jù)有3V的特點:海量Volume、多樣Variety、實時Velocity。

互聯(lián)網(wǎng)網(wǎng)站需求的3高的特點:高并發(fā)、高可擴(kuò)、高性能。

一、單機(jī)MySql

當(dāng)一個網(wǎng)站的訪問量不大時,用單個數(shù)據(jù)庫完全可以輕松應(yīng)付。

在那個時候,更多的都是靜態(tài)網(wǎng)頁,動態(tài)交互類型的網(wǎng)站不多。

上述架構(gòu)下,我們來看看數(shù)據(jù)存儲的瓶頸是什么?

1.數(shù)據(jù)量的總大小 一個機(jī)器放不下時

2.數(shù)據(jù)的索引(B+ Tree)一個機(jī)器的內(nèi)存放不下時

3.訪問量(讀寫混合)一個實例不能承受

如果滿足了上述1 or 3個,進(jìn)化......

二、Memcached(緩存)+Mysql+垂直拆分

后來,隨著訪問量的上升,幾乎大部分使用MySQL架構(gòu)的網(wǎng)站在數(shù)據(jù)庫上都開始出現(xiàn)了性能問題,web程序不再僅僅專注在功能上,同時也在追求性能。程序員們開始大量的使用緩存技術(shù)來緩解數(shù)據(jù)庫的壓力,優(yōu)化數(shù)據(jù)庫的結(jié)構(gòu)和索引。開始比較流行的是通過文件緩存來緩解數(shù)據(jù)庫壓力,但是當(dāng)訪問量繼續(xù)增大的時候,多臺web機(jī)器通過文件緩存不能共享,大量的小文件緩存也帶了了比較高的IO壓力。在這個時候,Memcached就自然的成為一個非常時尚的技術(shù)產(chǎn)品。

Memcached作為一個獨立的分布式的緩存服務(wù)器,為多個web服務(wù)器提供了一個共享的高性能緩存服務(wù),在Memcached服務(wù)器上,又發(fā)展了根據(jù)hash算法來進(jìn)行多臺Memcached緩存服務(wù)的擴(kuò)展,然后又出現(xiàn)了一致性hash來解決增加或減少緩存服務(wù)器導(dǎo)致重新hash帶來的大量緩存失效的弊端

三、MySql主從復(fù)制讀寫分離

由于數(shù)據(jù)庫的寫入壓力增加,Memcached只能緩解數(shù)據(jù)庫的讀取壓力。讀寫集中在一個數(shù)據(jù)庫上讓數(shù)據(jù)庫不堪重負(fù),大部分網(wǎng)站開始使用主從復(fù)制技術(shù)來達(dá)到讀寫分離,以提高讀寫性能和讀庫的可擴(kuò)展性。Mysql的master-slave模式成為這個時候的網(wǎng)站標(biāo)配了。

四、分庫分表+水平拆分+Mysql集群

在Memcached的高速緩存,MySQL的主從復(fù)制,讀寫分離的基礎(chǔ)之上,這時MySQL主庫的寫壓力開始出現(xiàn)瓶頸,而數(shù)據(jù)量的持續(xù)猛增,由于MyISAM使用表鎖,在高并發(fā)下會出現(xiàn)嚴(yán)重的鎖問題,大量的高并發(fā)MySQL應(yīng)用開始使用InnoDB引擎代替MyISAM。

同時,開始流行使用分表分庫來緩解寫壓力和數(shù)據(jù)增長的擴(kuò)展問題。這個時候,分表分庫成了一個熱門技術(shù),是面試的熱門問題也是業(yè)界討論的熱門技術(shù)問題。也就在這個時候,MySQL推出了還不太穩(wěn)定的表分區(qū),這也給技術(shù)實力一般的公司帶來了希望。雖然MySQL推出了MySQL Cluster集群,但性能也不能很好滿足互聯(lián)網(wǎng)的要求,只是在高可靠性上提供了非常大的保證。

五、Mysql的擴(kuò)展性瓶頸

MySQL數(shù)據(jù)庫也經(jīng)常存儲一些大文本字段,導(dǎo)致數(shù)據(jù)庫表非常的大,在做數(shù)據(jù)庫恢復(fù)的時候就導(dǎo)致非常的慢,不容易快速恢復(fù)數(shù)據(jù)庫。比如1000萬4KB大小的文本就接近40GB的大小,如果能把這些數(shù)據(jù)從MySQL省去,MySQL將變得非常的小。關(guān)系數(shù)據(jù)庫很強(qiáng)大,但是它并不能很好的應(yīng)付所有的應(yīng)用場景。MySQL的擴(kuò)展性差(需要復(fù)雜的技術(shù)來實現(xiàn)),大數(shù)據(jù)下IO壓力大,表結(jié)構(gòu)更改困難,正是當(dāng)前使用MySQL的開發(fā)人員面臨的問題。

六、為什么用Nosql

今天我們可以通過第三方平臺(如:Google,Facebook等)可以很容易的訪問和抓取數(shù)據(jù)。用戶的個人信息,社交網(wǎng)絡(luò),地理位置,用戶生成的數(shù)據(jù)和用戶操作日志已經(jīng)成倍的增加。我們?nèi)绻獙@些用戶數(shù)據(jù)進(jìn)行挖掘,那SQL數(shù)據(jù)庫已經(jīng)不適合這些應(yīng)用了, NoSQL數(shù)據(jù)庫的發(fā)展也卻能很好的處理這些大的數(shù)據(jù)。下面給大家看一下,web應(yīng)用數(shù)據(jù)量的增長圖:

七、Nosql是什么

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,

泛指非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題,包括超大規(guī)模數(shù)據(jù)的存儲。

(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴(kuò)展。

八、Nosql的優(yōu)勢

1.易擴(kuò)展

NoSQL數(shù)據(jù)庫種類繁多,但是一個共同的特點都是去掉關(guān)系數(shù)據(jù)庫的關(guān)系型特性。

數(shù)據(jù)之間無關(guān)系,這樣就非常容易擴(kuò)展。也無形之間,在架構(gòu)的層面上帶來了可擴(kuò)展的能力。

2.大數(shù)據(jù)量,高性能

NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。

這得益于它的無關(guān)系性,數(shù)據(jù)庫的結(jié)構(gòu)簡單。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應(yīng)用,Cache性能不高。而NoSQL的Cache是記錄級的,是一種細(xì)粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。

3.多樣靈活的數(shù)據(jù)模型

NoSQL無需事先為要存儲的數(shù)據(jù)建立字段,隨時可以存儲自定義的數(shù)據(jù)格式。而在關(guān)系數(shù)據(jù)庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據(jù)量的表,增加字段簡直就是一個噩夢。

九、Nosql數(shù)據(jù)庫的四大分類

鍵值(Key-Value)存儲

列存儲

文檔存儲

圖形存儲

常見的有:Redis、Memcache、MongoDB,這里就不一 一 介紹了。

互聯(lián)網(wǎng)背景下為什么會出現(xiàn)NoSQL

NoSQL泛指非關(guān)系型數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)行業(yè)的興起與發(fā)展,傳統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)已經(jīng)很難適應(yīng)大規(guī)模數(shù)據(jù)、非結(jié)構(gòu)性數(shù)據(jù)帶來的挑戰(zhàn),也就是現(xiàn)在大數(shù)據(jù)行業(yè)的發(fā)展對傳統(tǒng)的數(shù)據(jù)庫發(fā)出了挑戰(zhàn),而為了應(yīng)對大規(guī)模的非結(jié)構(gòu)性數(shù)據(jù)的處理,非關(guān)系型數(shù)據(jù)庫才會在計算機(jī)、軟件、數(shù)據(jù)庫等方面得到飛速的發(fā)展。

什么是NoSQL,它有什么優(yōu)缺點?

NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱。

NoSQL用于超大規(guī)模數(shù)據(jù)的存儲。(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴(kuò)展。

NoSQL的優(yōu)點/缺點

優(yōu)點:

- 高可擴(kuò)展性

- 分布式計算

- 低成本

- 架構(gòu)的靈活性,半結(jié)構(gòu)化數(shù)據(jù)

- 沒有復(fù)雜的關(guān)系

缺點:

- 沒有標(biāo)準(zhǔn)化

- 有限的查詢功能(到目前為止)

- 最終一致是不直觀的程序 (BY三人行慕課)

一、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ù)庫的擴(kuò)展能力。

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

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

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

Cassandra Cassandra

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

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

什么是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之類的不同格式存儲。

新聞標(biāo)題:nosql存儲背景,nosql數(shù)據(jù)庫四種存儲模式
瀏覽地址:http://jinyejixie.com/article12/dsdjddc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、手機(jī)網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)站制作、網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
镇巴县| 仪陇县| 永清县| 民权县| 库尔勒市| 巨野县| 马公市| 青海省| 鲁甸县| 连平县| 冷水江市| 开平市| 吴江市| 长武县| 湖口县| 丰原市| 丹东市| 茂名市| 崇文区| 蒲江县| 五原县| 深圳市| 兴海县| 葫芦岛市| 兴业县| 喀什市| 乐东| 安达市| 乌兰浩特市| 苗栗市| 南通市| 呼玛县| 察哈| 碌曲县| 龙门县| 江津市| 彰化市| 安龙县| 南靖县| 昌黎县| 英山县|