發布時間: 2023-03-08 17:14:11
(1)概念
NoSQL:即 Not-Only SQL( 泛指非關系型的數據庫),作為關系型數據庫的補充。 作用:應對基于海量用戶和海量數據前提下的數據處理問題。
他說這句話說的非??蜌?,什么意思呢?就是我們數據存儲要用SQL,但是呢可以不僅僅用SQL,還可以用別的東西,那別的東西叫什么呢?于是他定義了一句話叫做NoSQL。這個意思就是說我們存儲數據,可以不光使用SQL,我們還可以使用非SQL的這種存儲方案,這就是所謂的NoSQL。
(2)特征
可擴容,可伸縮。SQL數據關系過于復雜,你擴容一下難度很高,那我們Nosql 這種的,不存關系,所以它的擴容就簡單一些。
大數據量下高性能。包數據非常多的時候,它的性能高,因為你不走磁盤IO,你走的是內存,性能肯定要比磁盤IO的性能快一些。
靈活的數據模型、高可用。他設計了自己的一些數據存儲格式,這樣能保證效率上來說是比較高的,最后一個高可用,我們等到集群內部分再去它!
(3)常見 Nosql 數據庫
目前市面上常見的Nosql產品:Redis、memcache、HBase、MongoDB
(4)應用場景-電商為例
我們以電商為例,來看一看他在這里邊起到的作用。
第一類,在電商中我們的基礎數據一定要存儲起來,比如說商品名稱,價格,生產廠商,這些都屬于基礎數據,這些數據放在MySQL數據庫。
第二類,我們商品的附加信息,比如說,你買了一個商品評價了一下,這個評價它不屬于商品本身。就像你買一個蘋果,“這個蘋果很好吃”就是評論,但是你能說很好吃是這個商品的屬性嘛?不能這么說,那只是一個人對他的評論而已。這一類數據呢,我們放在另外一個地方,我們放到MongoDB。它也可以用來加快我們的訪問,他屬于NoSQL的一種。
第三,圖片內的信息。注意這種信息相對來說比較固定,他有專用的存儲區,我們一般用文件系統來存儲。至于是不是分布式,要看你的系統的一個整個 瓶頸 了?如果說你發現你需要做分布式,那就做,不需要的話,一臺主機就搞定了。
第四,搜索關鍵字。為了加快搜索,我們會用到一些技術,有些人可能了解過,像分ES、Lucene、solr都屬于搜索技術。那說的這么熱鬧,我們的電商解決方案中還沒出現我們的redis??!注意第五類信息。
第五,熱點信息。訪問頻度比較高的信息,這種東西的第二特征就是它具有波段性。換句話說他不是穩定的,它具有一個時效性的。那么這類信息放哪兒了,放到我們的redis這個解決方案中來進行存儲。
具體的我們從我們的整個數據存儲結構的設計上來看一下。
我們的基礎數據都存MySQL,在它的基礎之上,我們把它連在一塊兒,同時對外提供服務。向上走,有一些信息加載完以后,要放到我們的MongoDB中。還有一類信息,我們放到我們專用的文件系統中(比如圖片),就放到我們的這個搜索專用的,如Lucene、solr及集群里邊,或者用ES的這種技術里邊。
上一篇: scsi總線屬于什么總線
下一篇: spark的基本概念