NoSQL简介及常用NoSQL数据库

NoSQL数据库概述

NoSQL(NoSQL = Not Only SQL),意思即“不仅仅是SQL”,泛指非关系型数据库NoSQL不依赖业务逻辑方式存储。是以简单的key-value模式存储,而大大增加了数据库的扩展能力不遵循SQL标准不支持ACID(事务4种特性)性能远超于SQL

NoSQL使用场景

对数据高并发的读写海量数据的读写对数据高可扩展性

NoSQL不适用的场景

需要事务支持基于sql的机构化查询,处理复杂的关系,需要即席(条件)查询

memcached

数据都在内存中,一般不持久化支持简单的key-value模式(字符串)一般是作为缓存数据库辅助持久化的数据库

redis

几乎覆盖了memcached的绝大部分功能数据在内存中,支持持久化,主要用作备份恢复支持多种数据结构的存储,如list,set,hash,zset等一般是作为缓存数据库辅助持久化的数据库

MongoDB

高性能,开源,模式自由的文档型数据库环形队列,如果内存不足,支持先进先出丰富的查询功能,提供把不常用的功能保存到硬盘支持二进制数据及大型对象可以根据数据的特点替代RDBMS,成为独立的数据库

行式数据库

idnameagecity1zhangsan22北京2lisi33上海3wangwu44深圳

假设index索引为id列

select * from users where id = 2select avg(age) from users

列式数据库

idnameagecity1zhangsan22北京2lisi33上海3wangwu44深圳

select * from users where id = 2select avg(age) from users

HBASE

Hadoop项目中的数据库,需要对大量的数据进行随机,实时的读写操作的场景,目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行的数据,还可以处理有数百万列元素的数据表

Cassandra

Apache Cassandra是一款免费的开源NoSQL数据库,目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别),对写入及读取操作进行规模调整,能够以相对直观的方式简化各集群的创建与扩展流程