文章目錄
- 1. NoSQL 資料庫解決的問題
-
- 1.1 技術的分類
- 1.2 技術的發展
- 1.3 NoSQL 解決 CPU 及記憶體壓力
- 1.4 解決 IO 壓力
- 2. NoSQL 資料庫
-
- 2.1 NoSQL 資料庫概述
- 2.2 NoSQL 适用場景
- 2.3 NoSQL 不适用場景
- 2.4 常見 NoSQL
-
- 2.4.1 Memcache
- 2.4.2 Redis
- 2.4.3 MongoDB
1. NoSQL 資料庫解決的問題
1.1 技術的分類
- 解決功能性的問題:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN
- 解決擴充性的問題:Struts、Spring、SpringMVC、Hibernate、Mybatis
- 解決性能的問題:NoSQL、Java線程、Hadoop、Nginx、MQ、ElasticSearch
1.2 技術的發展
Web1.0
Web1.0 的時代,資料通路量很有限,用一夫當關的高性能的單點伺服器可以解決大部分問題。
Web2.0
随着 Web2.0 的時代的到來,使用者通路量大幅度提升,同時産生了大量的使用者資料。加上後來的智能移動裝置的普及,所有的網際網路平台都面臨了巨大的性能挑戰。
1.3 NoSQL 解決 CPU 及記憶體壓力
方案四:NoSQL 存儲 Session,不需要經過 IO,直接存在記憶體中,讀取速度更快。
1.4 解決 IO 壓力
NoSQL 作為緩存資料庫,頻繁查詢的資料放到緩存資料庫,減少 IO 壓力。
2. NoSQL 資料庫
2.1 NoSQL 資料庫概述
NoSQL(NoSQL = Not Only SQL ),意即 “不僅僅是 SQL”,泛指非關系型的資料庫。
NoSQL 不依賴業務邏輯方式存儲,而以簡單的 key-value 模式存儲,是以大大的增加了資料庫的擴充能力。
- 不遵循SQL标準。
- 不支援ACID。
- 遠超于SQL的性能。
2.2 NoSQL 适用場景
- 對資料高并發的讀寫
- 海量資料的讀寫
- 對資料高可擴充性的
2.3 NoSQL 不适用場景
- 需要事務支援
- 基于sql的結構化查詢存儲,處理複雜的關系,需要即席查詢。
- (用不着sql的和用了sql也不行的情況,請考慮用NoSql)