初識Redis之NoSQL+RDBMS演化史+什麼是NoSQL
NoSQL+RDBMS演化史+什麼是NoSQL
前言
提示:本文章是日常學習內容的總結,並非全部原創;僅供大家參考借鑑,並無其他商業用途。Bilibili搜尋關注:狂神說
真正在公司中的實踐:NoSQL + RDBMS 一起使用才是最強的,阿里巴巴的架構演進!
技術沒有高低之分,就看你如何去使用!(提升內功,思維的提高!)
雲端計算的長征之路:阿里雲的這群瘋子
1、NoSQL+RDBMS演化史
1.1 單機MySQL的年代!
90年代,一個基本的網站訪問量一般不會太大,單個資料庫完全足夠!
那個時候,更多的去使用靜態網頁 Html ~ 伺服器根本沒有太大的壓力!
思考一下,這種情況下:整個網站的瓶頸是什麼?
1、資料量如果太大、一個機器放不下了!
2、資料的索引 (B+ Tree),一個機器記憶體也放不下
3、訪問量(讀寫混合),一個伺服器承受不了~
只要你開始出現以上的三種情況之一,那麼你就必須要晉級!
1.2 Memcached(快取) + MySQL + 垂直拆分 (讀寫分離)
網站80%的情況都是在讀,每次都要去查詢資料庫的話就十分的麻煩!
所以說我們希望減輕資料的壓力,我們可以使用快取來保證效率!
發展過程: 優化資料結構和索引–> 檔案快取(IO)—> Memcached(當時最熱門的技術!)
1.3 分庫分表 + 水平拆分 + MySQL叢集
技術和業務在發展的同時,對人的要求也越來越高!
本質:資料庫(讀,寫)
早些年MyISAM: 表鎖,十分影響效率!高併發下就會出現嚴重的鎖問題
轉戰Innodb:行鎖
慢慢的就開始使用分庫分表來解決寫的壓力! MySQL 在哪個年代推出 了表分割槽!這個並沒有多少公司使用!
MySQL 的 叢集,很好滿足哪個年代的所有需求!
1.4 如今最近的年代
2010–2020 十年之間,世界已經發生了翻天覆地的變化;(定位,也是一種資料,音樂,熱榜!)
MySQL 等關係型資料庫就不夠用了!資料量很多,變化很快~!
MySQL 有的使用它來村粗一些比較大的檔案,部落格,圖片!資料庫表很大,效率就低了!
如果有一種資料庫來專門處理這種資料,
MySQL壓力就變得十分小(研究如何處理這些問題!)大資料的IO壓力下,表幾乎沒法更大!
目前一個基本的網際網路專案!
2、什麼是NoSQL
2.1 NoSQL
NoSQL = Not Only SQL (不僅僅是SQL)
關係型資料庫:表格 ,行 ,列
泛指非關係型資料庫的,隨著web2.0網際網路的誕生!傳統的關係型資料庫很難對付web2.0時代!
尤其是超大規模的高併發的社群! 暴露出來很多難以克服的問題,
NoSQL在當今大資料環境下發展的十分迅速,Redis是發展最快的,而且是我們當下必須要掌握的一個技術!
很多的資料型別使用者的個人資訊,社交網路,地理位置。這些資料型別的儲存不需要一個固定的格式!
不需要多月的操作就可以橫向擴充套件的 ! Map<String,Object> 使用鍵值對來控制!
2.2 NoSQL 特點
解耦!
1、方便擴充套件(資料之間沒有關係,很好擴充套件!)
2、大資料量高效能(Redis 一秒寫8萬次,讀取11萬,NoSQL的快取記錄級,是一種細粒度的快取,效能會比較高!)
3、資料型別是多樣型的!(不需要事先設計資料庫!隨取隨用!如果是資料量十分大的表,很多人就無法設計了!)
4、傳統 RDBMS 和 NoSQL
傳統的 RDBMS
結構化組織
SQL
資料和關係都存在單獨的表中 row col
操作操作,資料定義語言
嚴格的一致性
基礎的事務
…
Nosql
不僅僅是資料
沒有固定的查詢語言
鍵值對儲存,列儲存,文件儲存,圖形資料庫(社交關係)
最終一致性,
CAP定理和BASE (異地多活) 初級架構師!(狂神理念:只要學不死,就往死裡學!)
高效能,高可用,高可擴
…
2.3 3V+3高
大資料時代的3V:主要是描述問題的
- 海量Volume
- 多樣Variety
- 實時Velocity
大資料時代的3高:主要是對程式的要求
5. 高併發
6. 高可擴
7. 高效能
相關文章
- nosql redis初志SQLRedis
- 什麼是NoSQLSQL
- NoSQL之Redis配置解析SQLRedis
- MySQL、NoSQL分別是什麼?有什麼區別?MySql
- 初識RedisRedis
- [Redis 概述] 什麼是 Redis?Redis
- NoSQL之Redis叢集部署解析SQLRedis
- NoSQL之Redis的配置優化SQLRedis優化
- 初識Node.js【01】Node.js是什麼?Node.js
- 什麼是NoSQL?這裡給你整明白SQL
- Redis學習(一)——初識RedisRedis
- 2.NoSQL之Redis配置與優化SQLRedis優化
- 什麼是知識
- Redis學習筆記(一)——初識RedisRedis筆記
- Linux學習教程之什麼是Redis?Redis有什麼特點?LinuxRedis
- 前端基礎知識之什麼是節點Node?前端
- SEO新手初入門,認識什麼是SEO教學 Read more at TechMoon
- 潛意識是什麼
- NoSql-Redis事務SQLRedis
- 43_初識搜尋引擎_什麼是mapping再次回爐透徹理解APP
- 初識Kotlin之集合Kotlin
- 人工神經網路初學:是什麼以及為什麼?神經網路
- 快速認識什麼是:DockerDocker
- Nosql——Redis配置與優化SQLRedis優化
- redis初級之Lua指令碼Redis指令碼
- Redis是單執行緒的,但Redis為什麼這麼快?Redis執行緒
- 初識Redis的資料型別HyperLogLogRedis資料型別
- hook初識之inline hookHookinline
- RabbitMQ系列之---初識RabbitMQMQ
- 面試官:說說你對NoSQL的瞭解,為什麼要有NoSQL面試SQL
- Redis實戰解讀-初識Redis&Redis基本資料型別Redis資料型別
- redis知識之HyperLogLogRedis
- postgresql是nosql嗎SQL
- Nosql/Redis/ttserver/Flare/memcache比較SQLRedisTTSServer
- redis-1.Nosql的介紹RedisSQL
- 初學者學Python還是C語言?兩者之間有什麼不同?PythonC語言
- php之Symfony框架是什麼PHP框架
- NoSQL為什麼需要模式自由的ETL工具 ?SQL模式