1歪赢、NoSQL
NoSQL概述
(1)NoSQL(NoSQL = Not Only SQL )化戳,意即“不僅僅是SQL”单料,泛指非關(guān)系型的數(shù)據(jù)庫埋凯。
(2)NoSQL 不依賴業(yè)務(wù)邏輯方式存儲(chǔ),而以簡單的key-value模式存儲(chǔ)扫尖。因此大大的增加了數(shù)據(jù)庫的存取性能白对。
(3)不遵循SQL標(biāo)準(zhǔn)。
(4)不支持ACID换怖。
NoSQL適用場景
(1)對數(shù)據(jù)高并發(fā)的讀寫
(2)海量數(shù)據(jù)的讀寫
(3)對數(shù)據(jù)高可擴(kuò)展性的
NoSQL不適用場景
(1)需要事務(wù)支持
(2)基于sql的結(jié)構(gòu)化查詢存儲(chǔ)甩恼,處理復(fù)雜的關(guān)系,需要即席查詢。
用不著sql的和用了sql也不行的情況沉颂,請考慮用NoSql
2条摸、Memcached
(1)很早出現(xiàn)的NoSql數(shù)據(jù)庫
(2)數(shù)據(jù)都在內(nèi)存中,一般不持久化
(3)支持簡單的key-value模式
(4)一般是作為緩存數(shù)據(jù)庫輔助持久化的數(shù)據(jù)庫
3铸屉、Redis
(1)概述
幾乎覆蓋了Memcached的絕大部分功能
數(shù)據(jù)都在內(nèi)存中钉蒲,支持持久化,主要用作備份恢復(fù)
除了支持簡單的key-value模式彻坛,還支持多種數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)顷啼,比如 list、set昌屉、hash钙蒙、zset等
一般是作為緩存數(shù)據(jù)庫輔助持久化的數(shù)據(jù)庫
(2)介紹
Redis是一個(gè)開源的key-value存儲(chǔ)系統(tǒng)。和Memcached類似间驮,它支持存儲(chǔ)的value類型相對更多躬厌,包括string(字符串)、list(鏈表)竞帽、set(集合)扛施、zset(sorted set --有序集合)和hash(哈希類型)偏陪。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作煮嫌,而且這些操作都是原子性的笛谦。在此基礎(chǔ)上,Redis支持各種不同方式的排序昌阿。與memcached一樣饥脑,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中懦冰。區(qū)別的是Redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件灶轰,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步
4、MongoDB
(1)高性能刷钢、開源笋颤、模式自由(schema free)的文檔型數(shù)據(jù)庫
(2)數(shù)據(jù)都在內(nèi)存中, 如果內(nèi)存不足内地,把不常用的數(shù)據(jù)保存到硬盤
(3)雖然是key-value模式伴澄,但是對value(尤其是json)提供了豐富的查詢功能
(4)支持二進(jìn)制數(shù)據(jù)及大型對象
(5)可以根據(jù)數(shù)據(jù)的特點(diǎn)替代RDBMS ,成為獨(dú)立的數(shù)據(jù)庫阱缓》橇瑁或者配合RDBMS,存儲(chǔ)特定的數(shù)據(jù)荆针。
5敞嗡、HBase
HBase是Hadoop項(xiàng)目中的數(shù)據(jù)庫。它用于需要對大量的數(shù)據(jù)進(jìn)行隨機(jī)航背、實(shí)時(shí)的讀寫操作的場景中喉悴。HBase的目標(biāo)就是處理數(shù)據(jù)量非常龐大的表,可以用普通的計(jì)算機(jī)處理超過10億行數(shù)據(jù)玖媚,還可處理有數(shù)百萬列元素的數(shù)據(jù)表箕肃。
6、Cassandra
Apache Cassandra是一款免費(fèi)的開源NoSQL數(shù)據(jù)庫最盅,其設(shè)計(jì)目的在于管理由大量商用服務(wù)器構(gòu)建起來的龐大集群上的海量數(shù)據(jù)集(數(shù)據(jù)量通常達(dá)到PB級別)突雪。在眾多顯著特性當(dāng)中,Cassandra最為卓越的長處是對寫入及讀取操作進(jìn)行規(guī)模調(diào)整涡贱,而且其不強(qiáng)調(diào)主集群的設(shè)計(jì)思路能夠以相對直觀的方式簡化各集群的創(chuàng)建與擴(kuò)展流程咏删。
7、DB-Engines 數(shù)據(jù)庫排名
http://db-engines.com/en/ranking