Nosql的一個簡單的介紹,以及Nosql資料庫和傳統的資料庫的區別 ...
NoSql介紹
NoSql的全稱是Not Only Sql,這個概念早期就有人提出,在09年的時候比較火。NoSql指的是非關係型資料庫,而我們常用的資料庫都是關係型的資料庫。如:mysql、sqlserver、oracle資料庫。這些資料庫可以應付普通的常規業務,是沒有問題的。但是,隨著互聯網的發展,傳統的資料庫在應付超大規模,和高併發的數據時就顯得力不從心。而這個時候,nosql開始得到迅速的發展。
和關係型資料庫的區別
那麼nosql都有哪些特點呢?為什麼它可以適應這些大數據量,高併發的訪問呢?
nosql是以Key-value的形式進行存儲的,而且不一定遵守傳統資料庫的一些基本的要求(根據資料庫的不同,可能有的會遵循部分的標準),比如說sql語句的標準。在sql標準中,增刪改查對應相應的insert、delete、update和select命令。而我們的NoSql命令中,這些規範是不適應的。
還有就是事務處理,NoSql資料庫中,以redis資料庫為例,雖然有的支持事務,但是很簡單,滿足不了需求。
最後就是表結構,我們的關係型資料庫中,每個表有自己的主鍵啊,還有各個欄位啊,都有自己的表結構。而我們的NoSql都是沒有表結構的。這就導致我們的非關係型資料庫比較容易分散式架構。
NoSql特點
1.處理超大量的數據
和mysql相比,NoSql的數據處理能力相對較大。nosql對數據的高併發讀寫能力較強。如:加入對mysql進行每秒上萬次的寫入,它就廢掉了(主要是硬碟io無法承受),但是我們的redis(NoSql的)的話,上萬次的讀寫是沒有啥壓力的。
2.運行成本低
由於可以搭建集群,NoSql可以搭建一個集群。而這些普通的pc機的價格是很低的。
3.性能沒有瓶頸
當我們的mysql資料庫中數據量達到某一個量級的時候,我們的存儲和讀取的效率就會降低,而nosql資料庫就比較輕鬆的可以查找到相對的信息。
4.資料庫的擴展性
mysql需要升級或者數據遷移的時候,是特別的麻煩的。但是對於NoSql來說,只需要增加一個節點就可以了。因為NoSql沒有表結構。
Reids介紹
而我們的NoSql中很火的一個資料庫就是Redis資料庫。它是一個開源的,鍵值對結構的數據結構伺服器。它的值可以包含字元串、哈希、鏈表、集合、和有序集合。
這些數據可以以不同的方式排序。redis的數據一般都是緩存在記憶體中,也可以通過一些配置將數據寫入磁碟中。
目前全球最大的redis用戶就是新浪微博,據說有幾千台伺服器搭了一個redis的集群(具體數據不知道)。