NoSQL数据库优缺点对比

  • A+
阿里云代金券

NoSQL即非关系型的数据库,那么NoSQL数据库数据库有哪些?数据库吧分享常见的NoSQL数据库及优缺点对比:

常见的NoSQL数据库

临时性键值存储 永久性键值存储 面向文档的数据库 面向列的数据库
Memcached Tokyo Tyrant MangoDB Cassandra
Redis Flare CouchDB HBase
ROMA HyperTable
Redis

常见的NoSQL数据库有Redis、Memcache及MongoDB等,数据库吧分享这三种NoSQL数据库的优缺点:

Redis优缺点

优点:

1. 支持多种数据结构,如string(字符串)、list(双向链)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算);
2. 支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段;
3. 支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制,master-slave机制是Redis进行HA的重要手段;
4. 单线程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题;
5. 支持pub/sub消息订阅机制,可以用来进行消息订阅与通知;
6. 支持简单的事务需求,但业界使用场景很少,并不成熟。

缺点:

1. Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右);
2. 支持简单的事务需求,但业界使用场景很少,并不成熟,既是优点也是缺点;
3. Redis在string类型上会消耗较多内存,可以使用dict(hash表)压缩存储以降低内存耗用。

Memcache优缺点

优点:

1. Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右),适用于最大程度扛量;
2. 支持直接配置为session handle。

缺点:

1. 只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型;
2. 无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失;
3. 无法进行数据同步,不能将MC中的数据迁移到其他MC实例中;
4. Memcached内存分配采用Slab Allocation机制管理内存,value大小分布差异较大时会造成内存利用率降低,并引发低利用率时依然出现踢出等问题,需要用户注重value设计。

MongoDB优缺点

优点:

1. 更高的写负载,MongoDB拥有更高的插入速度;
2. 处理很大的规模的单表,当数据表太大的时候可以很容易的分割表;
3. 高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点(数据中心)故障转移;
4. 快速的查询,MongoDB支持二维空间索引,比如管道,因此可以快速及精确的从指定位置获取数据。MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中。如果内存资源相当丰富的话,这将极大地提高数据库的查询速度;
5. 非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响,整个过程会非常快速。

缺点:

1. 不支持事务;
2. MongoDB占用空间过大;
3. MongoDB没有成熟的维护工具。

注意:购买阿里云数据库,先领取阿里云2000元代金券,符合条件的订单可以使用代金券抵扣。

阿里云数据库优惠

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: