單機mysql時代資料量太大,乙個機器放不下了
資料的索引,乙個機器記憶體也放不下
訪問量(讀寫混合),乙個伺服器承受不了
只要你開始出現以上情況之一,那麼你就必須要晉級!
memcahced(快取)+mysql+垂直拆分
**80%的情況是在讀,每次要去查資料庫的話就十分麻煩,所以我們希望減輕資料庫的壓力,我們可以使用快取來保證效率!
發展過程:
優化資料結構和索引–>檔案快取io–>memcached(當時最熱門的技術)
分庫分表+水平拆分+mysql集群
本質:資料庫(讀寫)
早些年myisam:表所,十分影響效率!高併發下就會出現嚴重的鎖問題!
轉戰innordb:行鎖
慢慢的就開始使用分庫來解決寫的壓力!
最近的年代
mysql等關係型資料庫就不夠用了!資料量很多,變化很快!
mysql有的使用它來儲存一些比較大的檔案,部落格,,資料量表很大,效率很低,如果一種資料庫來專門處理這些資料,mysql的壓力就會變得十分小(研究如何處理這些問題),大資料的io壓力下,表幾乎沒法更改(如加乙個列)
為什麼要用nosql
使用者的個人資訊,社交網路,地理位置,使用者自己產生的資料,使用者日誌等等爆發式增長,這時候我們就需要使用nosql資料庫,nosql可以很好的處理以上問題
nosql, not only sql
關係型資料庫:**,行,列
泛指非關係型資料庫的,隨著web2.0網際網路的誕生。傳統的關係型資料庫很難應對web2.0的時代!尤其 是超大規模的高併發的社群,暴露出很多難以克服的問題,nosql在當今大資料環境下發展的十分迅速,redis是發展最快的,而且是我們當下必須要掌握的一種技術。
很多的資料型別使用者的個人資訊,社交網路,地理位置。這些資料型別的儲存不需要乙個固定的格式,不需要多餘的操作就可以橫向擴充套件。map使用鍵值對來控制!
解耦!方便擴充套件(資料之間沒有關係,很好擴充套件)
大資料量高效能(redis一秒寫8萬次讀11萬次。nosql的快取記錄級,是一種細粒度的快取,效能會比較高)
資料型別是多樣的(不需要事先設計資料庫,隨取隨用,如果是資料量十分大的表,很多人就無法設計了)
傳統rdbms和nosql
傳統的rdbmskv鍵值對:結構化組織
sql資料和關係都存在單獨的表中
操作操作,資料定義語言
嚴格的一致性
基礎的事務
nosql
不僅僅是資料
沒有固定的查詢語言
鍵值對儲存,列儲存,文件儲存,圖形資料庫(社交關係)
最終一致性
cap定理和base(異地多活)
高效能,高可用,搞擴充套件
美團:redis+tair
文件型資料庫(bson格式和json格式一樣):
列儲存資料庫
圖形關聯式資料庫:
Redis入門 Nosql概述
1 單機mysql時代 90年代,乙個 的訪問量一般不會太大,單個資料庫完全夠用。隨著使用者增多,出現以下問題 資料量增加到一定程度,單機資料庫就放不下了 資料的索引 b tree 乙個機器記憶體也存放不下 訪問量變大後 讀寫混合 一台伺服器承受不住。2 memcached 快取 mysql 垂直拆...
Redis學習 Nosql概述,資料型別,四大分類
1 單機mysql的時代 2 memcached 快取 mysql 垂直拆分 80 的情況都是在讀取,每次都要去查詢資料庫的話就會很麻煩,所以說我們希望減輕資料庫的壓力,我們可以使用快取來 保證效率。發展過程 優化資料結構和索引 檔案快取 io memcached 當時最熱門的技術 3 分庫分表 水...
NOSQL理念概述
主流的nosql產品 redis是一款高效能的nosql系列的非關係型資料庫 nosql nosql not only sql 意即 不僅僅是sql 是一項全新的資料庫理念,泛指非關係型的資料庫。隨著網際網路web2.0 的興起,傳統的關聯式資料庫在應付web2.0 特別是超大規模和高併發的sns型...