Redis學習(一) nosql概述

2021-10-23 16:22:14 字數 1794 閱讀 1083

單機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

傳統的rdbms

結構化組織

sql資料和關係都存在單獨的表中

操作操作,資料定義語言

嚴格的一致性

基礎的事務

nosql

不僅僅是資料

沒有固定的查詢語言

鍵值對儲存,列儲存,文件儲存,圖形資料庫(社交關係)

最終一致性

cap定理和base(異地多活)

高效能,高可用,搞擴充套件

kv鍵值對

美團: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型...