nosql的使用

nosql常見的幾種類型:html

1.  k-v存儲。(Redis,Memcache)mysql

鍵值數據庫就像在傳統語言中使用的哈希表。你能夠經過key來添加、查詢或者刪除數據。sql

適用場景:mongodb

儲存用戶信息,好比session、緩存html,配置文件、參數、購物車等等。這些信息通常都和ID(鍵)掛鉤,這種情景下鍵值數據庫是個很好的選擇。數據庫

不適用場景:緩存

直接查找value。session

2.  文檔數據庫(MongoDB、CouchDB)nosql

面向文檔數據庫會將數據以文檔的形式儲存。每一個文檔都是自包含的數據單元,是一系列數據項的集合。每一個數據項都有一個名稱與對應的值,值既能夠是簡單的數據類型,如字符串、數字和日期等;也能夠是複雜的類型,若有序列表和關聯對象。數據存儲的最小單位是文檔,同一個表中存儲的文檔屬性能夠是不一樣的,數據可使用XML、JSON或者JSONB等多種形式存儲。性能

適用場景:大數據

mysql的替代品,須要動態的查詢,更偏向與定義索引而非 map/reduce,針對大數據想要更好的性能。例如:日誌。企業環境下,每一個應用程序都有不一樣的日誌信息。Document-Oriented數據庫並無固定的模式,因此咱們可使用它儲存不一樣的信息

不適用場景:

不支持事務。

3. 列存儲。(Cassandra、HBase、Redis)

列存儲數據庫將數據儲存在列族中,一個列族存儲常常被一塊兒查詢的相關數據。舉個例子,若是咱們有一個Person類,咱們一般會一塊兒查詢他們的姓名和年齡而不是薪資。這種狀況下,姓名和年齡就會被放入一個列族中,而薪資則在另外一個列族中。

適用場景:

1) 日誌。由於咱們能夠將數據儲存在不一樣的列中,每一個應用程序能夠將信息寫入本身的列族中。

2) 博客平臺。咱們儲存每一個信息到不一樣的列族中。舉個例子,標籤能夠儲存在一個,類別能夠在一個,而文章則在另外一個。

4. 圖數據庫。(Neo4J、Infinite Graph、OrientDB)

圖數據庫容許咱們將數據以圖的方式儲存。實體會被做爲頂點,而實體之間的關係則會被做爲邊。解決實體間複雜的圖形關係問題。

適用場景:

1) 社交關係。

2) 推薦引擎。

mongodb 主要用於讀,或者非關鍵數據的寫操做。 mysql 用於事務處理。

MongoDB 海量數據查詢快速 不須要創建數據模型     適合作日誌數據庫    或者中間數據庫 從MySQL數據庫中讀取存放一些須要讀的業務數據   MongoDB沒有適合多表事務功能,寫操做也沒有多好的肯定機制,不適合當作業務數據的數據庫 MySQl 存放業務數據 事務的讀寫

相關文章
相關標籤/搜索