什麼是NoSql?
為瞭解決高並發、高可用、高可擴充,大資料存放區等一系列問題而產生的資料庫解決方案,就是NoSql。
NoSql,叫非關係型資料庫,它的全名Not only sql。它不能替代關係型資料庫,只能作為關係型資料庫的一個良好補充等
NoSql的分類
索引值(Key-Value)儲存資料庫
相關產品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型應用: 內容緩衝,主要用於處理大量資料的高訪問負載。
資料模型: 一系列索引值對
優勢: 快速查詢
劣勢: 儲存的資料缺少結構化
列儲存資料庫
相關產品:Cassandra, HBase, Riak
典型應用:分布式的檔案系統
資料模型:以列簇式儲存,將同一列資料存在一起
優勢:尋找速度快,可擴充性強,更容易進行分布式擴充
劣勢:功能相對局限
文檔型資料庫
相關產品:CouchDB、MongoDB
典型應用:Web應用(與Key-Value類似,Value是結構化的)
資料模型: 一系列索引值對
優勢:資料結構要求不嚴格
劣勢: 查詢效能不高,而且缺乏統一的查詢文法
圖形(Graph)資料庫
相關資料庫:Neo4J、InfoGrid、Infinite Graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法。
劣勢:需要對整個圖做計算才能得出結果,不容易做分布式的叢集方案。
什麼是redis
Redis是使用c語言開發的一個高效能索引值資料庫。Redis可以通過一些索引值類型來儲存資料。
索引值類型:
String字元類型
map散列類型
list清單類型
set集合類型
sortedset有序集合類型
redis的應用情境
緩衝(資料查詢、短串連、新聞內容、商品內容等等)。(最多使用)
分布式叢集架構中的session分離。
聊天室的線上好友名單。
任務隊列。(秒殺、搶購、12306等等)
應用熱門排行榜。
網站訪問統計。
資料到期處理(可以精確到毫秒)