NoSQL資料庫概念與NoSQL資料庫家族

我會發光?發表於2020-12-16

什麼是NoSQL資料庫?

NoSQL資料庫即為not noly sql 資料庫,意為不僅僅是SQL資料庫,泛指非關係型資料庫:
----->>>
NoSQL 不拘泥於關係型資料庫的設計正規化,放棄了通用的技術標準,為某一領域特定場景而設計,從而使效能、容量或者擴充套件性都打到了一定程度的突破。
NoSQL資料庫特點:
1.它不遵循SQL標準
2.它不支援ACID
3.它在某個領域遠超於SQL的效能(我們不能絕對的說NoSQL資料庫的效能遠超於SQL資料庫的效能,一定是在某個特定的場合)

NoSQL資料庫適用和不適用的場景:

nosql適用的場景:
1.效能好
2.容量大
3.擴充套件性高
4.當無法使用sql的情況,可以嘗試使用nosql

nosql不適用的場景:
1.需要事務支援不能使用nosql(事務必須嚴格的一致性)
2.基於sql的結構化查詢儲存,處理較為複雜的關係,不能使用nosql

NoSQL資料庫家族:

1.Memcache(記憶體資料庫)[可用性很低:因為資料無法持久化,現在已經很少有公司使用了]

很早出現的NoSql資料庫;
資料都在記憶體中,一般不持久化;
支援簡單的key-value模式,支援型別單一;
一般是作為快取資料庫輔助持久化的資料庫。

2.Redis(記憶體資料庫)[支援持久化,可以落盤]

當記憶體資料和磁碟資料產生衝突時,Redis資料庫會優先選擇記憶體為主要依據,因為記憶體資料比磁碟資料全,只有當記憶體的資料都丟失了,才會去磁碟獲取資料;
它幾乎覆蓋了Memcached的絕大部分功能;
資料都在記憶體中,支援持久化,主要用作備份恢復;
除了支援簡單的key-value模式,還支援多種資料結構的儲存,比如 list、set、hash、zset等。
—>>>
Redis資料庫一般是作為快取資料庫輔助持久化的資料庫

3.Mongodb(文件資料庫)(一般會作為資料來源)(它不善於做複雜的事務)

高效能、開源、模式自由(schema free)的文件型資料庫;
資料都在記憶體中, 如果記憶體不足,把不常用的資料儲存到硬碟;
雖然是key-value模式,但是對value(尤其是json)提供了豐富的查詢功能;
支援二進位制資料及大型物件;
可以根據資料的特點替代RDBMS ,成為獨立的資料庫。或者配合RDBMS,儲存特定的資料。

4.Hbase(列資料庫)(與Redis資料庫不同,Hbase以磁碟中的資料為主,以記憶體的資料為次要的)

HBase是Hadoop專案中的資料庫。它用於需要對大量的資料進行隨機、實時的讀寫操作的場景中;
HBase的目標就是處理資料量非常龐大的表,可以用普通的計算機處理超過10億行資料,還可處理有數百萬列元素的資料表。

相關文章