(1)單機mysql的時代
(2)memcached(快取)+mysql+垂直拆分
**80%的情況都是在讀取,每次都要去查詢資料庫的話就會很麻煩,所以說我們希望減輕資料庫的壓力,我們可以使用快取來
保證效率。
發展過程:優化資料結構和索引-->檔案快取(io)-->memcached(當時最熱門的技術)
(3)分庫分表+水平拆分+mysql集群
技術和業務在發展的同時,對人的要求也越來越高。
本質:資料庫(讀,寫)
早些年myisam;表鎖,十分影響效率,高併發下就會出現嚴重的鎖問題
轉戰innodb:行鎖
開始使用分庫分表來解決寫的壓力!
mysql的集群
nosql=not only sql(不僅僅是sql)
泛指非關係型資料庫的,隨著web2.0網際網路的誕生,傳統的關係型資料庫很難對付web2.0時代,尤其是超大規模的高併發的社群,
暴露出來很多難以克服的問題,nosql在當今大資料環境下發展的十分迅速,redis是發展最快的,而且是我們當下必須要掌握的
乙個技術。
很多的資料型別使用者的個人資訊,社交網路,地理位置,這些資料型別的儲存不需要乙個固定的格式,不需要多餘的操作就可以
橫向擴充套件的!map使用鍵值對來控制。
nosql特點:
解耦:1.方便擴充套件(資料之間沒有關係,很好擴充套件)
2.大資料量高效能(redis一秒寫8萬次,讀取11萬,nosql的快取記錄級,是一種細粒度的快取,效能會比較高)
3.資料型別是多樣性的!(不需要事先設計資料庫!隨取隨用!如果是資料量十分大的表,很多人就無法設計了!)
4.傳統rdbms和nosql
傳統的rdbms
-結構化組織
-sql
-資料和關係都存在單獨的表中
-操作,定義資料語言
-嚴格的一致性
-基礎的事務
-......
nosql
-不僅僅是資料
-沒有固定的查詢語言
-鍵值對儲存,列儲存,文件儲存,影象資料庫(社交關係)
-最終一致性
-cap定理和base(異地多活)
-高效能,高可用,高可擴
-......
了解:3v+3高
大資料時代的3v:主要是描述問題的
1.海量volume
2.多樣variety
3.實時velocity
大資料時代的3高:
1.高併發
2.高可擴
3.高效能
美團:redis+tair
文件行資料庫(bson 和json一樣):
(1)mongodb是乙個基於分布式檔案儲存的資料庫,c++編寫,主要用於處理大量的文件。
(2)mongodb是乙個介於關係型資料庫和非關係型資料庫中間的產品,mongodb是非關係型資料庫中功能最豐富,最像關係型資料庫的!
列儲存資料庫
圖關聯式資料庫
neo4j,infogrid 分類
examples舉例
典型應用場景
資料模型
優點缺點
鍵值(key-value)[3]tokyo cabinet/tyrant, redis, voldemort, oracle bdb
內容快取,主要用於處理大量資料的高訪問負載,也用於一些日誌系統等等。[3]
key 指向 value 的鍵值對,通常用hash table來實現[3]
查詢速度快
資料無結構化,通常只被當作字串或者二進位制資料[3]
列儲存資料庫[3]cassandra, hbase, riak
分布式的檔案系統
以列簇式儲存,將同一列資料存在一起
查詢速度快,可擴充套件性強,更容易進行分布式擴充套件
功能相對侷限
文件型資料庫[3]couchdb, mongodb
web應用(與key-value類似,value是結構化的,不同的是資料庫能夠了解value的內容)
key-value對應的鍵值對,value為結構化資料
資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構
查詢效能不高,而且缺乏統一的查詢語法。
對,value為結構化資料
資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構
查詢效能不高,而且缺乏統一的查詢語法。
圖形(graph)資料庫[3]neo4j, infogrid, infinite graph
社交網路,推薦系統等。專注於構建關係圖譜
圖結構利用圖結構相關演算法。比如最短路徑定址,n度關係查詢等
很多時候需要對整個圖做計算才能得出需要的資訊,而且這種結構不太好做分布式的集群方案。[3]
Redis學習(一) nosql概述
單機mysql時代資料量太大,乙個機器放不下了 資料的索引,乙個機器記憶體也放不下 訪問量 讀寫混合 乙個伺服器承受不了 只要你開始出現以上情況之一,那麼你就必須要晉級!memcahced 快取 mysql 垂直拆分 80 的情況是在讀,每次要去查資料庫的話就十分麻煩,所以我們希望減輕資料庫的壓力,...
Redis入門 Nosql概述
1 單機mysql時代 90年代,乙個 的訪問量一般不會太大,單個資料庫完全夠用。隨著使用者增多,出現以下問題 資料量增加到一定程度,單機資料庫就放不下了 資料的索引 b tree 乙個機器記憶體也存放不下 訪問量變大後 讀寫混合 一台伺服器承受不住。2 memcached 快取 mysql 垂直拆...
NOSQL理念概述
主流的nosql產品 redis是一款高效能的nosql系列的非關係型資料庫 nosql nosql not only sql 意即 不僅僅是sql 是一項全新的資料庫理念,泛指非關係型的資料庫。隨著網際網路web2.0 的興起,傳統的關聯式資料庫在應付web2.0 特別是超大規模和高併發的sns型...