nosql数据库有哪些, 什么是nosql数据库?不知道小伙伴们今天来看看边肖的分享吧!
一个议员普通的关于NoSQLDie Datenbank hatRedis,Memcache,MongoDB .
二标籤:Redis、Memcache、MongoDB的特点:
Redis
优势:
1.支持多种数据结构,如string(字符串)、list(链表)、dict(哈希表)、set(集合)、zset(排序集)、hyperloglog(基数估计)。
2.支持持久化操作,可以将aof和rdb数据持久化到磁盘,以便进行数据备份或数据恢复,是防止数据丢失的较好手段。
3.支持通过复制进行数据复制,通过主从机制实时同步数据复制,支持多级复制和增量复制。主从机制是Redis进行HA的重要手段。
4.单线程请求,所有命令串行执行,在并发的情况下不需要考虑数据一致性。
5.支持pub/sub消息订阅机制,可用于消息订阅和通知。
6.支持简单的交易需求,但行业内使用场景较少,不太成熟。
缺点:
1.Redis只能使用单线程,性能受限于CPU的性能,所以单实例CPU最高可以达到每秒5-6wQPS(具体取决于数据结构、数据大小和服务器硬件性能,日常环境下QPS峰值在1-2w左右)。
2.支持简单的交易需求,但行业内的场景少且不成熟,有利也有弊。
3.Redis在字符串类型上会消耗更多内存,可以用dict(哈希表)压缩存储来减少内存。
消费。
Memcache
优势:
1.Memcached可以利用多核的优势,单实例吞吐量极高,达到几十万QPS(取决于key和值的字节大小和服务器的硬件性能,日常环境下QPS峰值在4-6w左右)。适合最大承载能力。
2.支持直接配置为会话句柄。
缺点:
1只支持简单的键/值数据结构,不像Redis可以支持丰富的数据类型。
2.不能持久化,数据不能备份,只能用于缓存,重启后数据全部丢失。
3.无法执行数据同步,MC中的数据无法迁移到其他MC实例。
4.Memcached内存分配使用Slab分配机制来管理内存。当值大小分布差异较大时,会降低内存利用率,造成利用率低时踢出等问题。用户需要重视价值设计。
MongoDB
优势:
1.在更高的写负载下,MongoDB具有更高的插入速度。
2.处理大规模的单表。数据表过大时,很容易分表。
3.高可用性,设置M-S不仅方便而且快捷,MongoDB还可以快速、安全、自动地实现节点(数据中心)故障切换。
4.快速查询,MongoDB支持二维空间索引,比如管道,所以可以快速准确的从指定位置获取数据。启动后,MongoDB会将数据库中的数据以文件映射的形式加载到内存中。如果内存资源非常充足,
这将大大提高数据库的查询速度。
5.随着非结构化数据的爆炸式增长,添加列在某些情况下可能会锁定整个数据库,或者增加负载,从而导致性能下降。由于MongoDB的弱数据结构模式,添加一个新字段不会对旧表产生任何影响,整个过程会非常快。
缺点:
1.不支持交易。
2.MongoDB占用空间太大。
3.MongoDB没有成熟的维护工具。
Three labels: Redis, Memcache and MongoDB:
1.表演
三者性能比较高。总的来说,Memcache和Redis差不多,高于MongoDB。
2.便利
Memcache只有一个数据结构。
Redis更丰富,数据操作方面,redis更好,网络IO次数更少。
Mongodb支持丰富的数据表达、索引,最类似于关系数据库,支持非常丰富的查询语言。
3、储物空间
Redis在2.0版本之后加入了自己的VM特性,突破了物理内存的限制;您可以为键值设置过期时间(类似于memcache)。
Memcache可以修改最大可用内存,并采用LRU算法。
MongoDB适合存储大量数据,依靠操作系统VM进行内存管理,吃内存也很厉害。服务不应与其他服务放在一起。
4.有效性
Redis,依托客户端实现分布式读写;在主从复制中,每次从节点重新连接到主节点时,都依赖于整个快照,没有增量复制。由于性能和效率问题,单点问题更加复杂。不支持自动分片,但这是必需的。
依靠程序来设置一致的散列机制。一个替代方案是自己做主动复制(多存储),没有redis本身的复制机制,或者改成增量复制(需要自己实现),一致性问题,性能权限。
恒。
Memcache本身没有数据冗余机制,没有必要;对于故障预防,采用成熟的hash或ring算法解决单点故障引起的抖动问题。
MongoDB支持主从、replicaset(内部paxos选举算法、自动故障恢复)和自动分片机制,为客户端屏蔽了故障转移和分段机制。
5.可靠性
Redis支持(快照,aof):依赖于快照的持久性,AOF在影响性能的同时增强了可靠性。
memcache不支持,通常用在做缓存,提升性能。
MongoDB从1.8版本开始采用binlog方式支持持久化的可靠性。
6.一致性
Memcache 在并发场景下,用cas保证一致性。
redis事务支持比较弱,只能保证事务中的每个操作连续执行。
mongoDB不支持事务。
7.数据分析
mongoDB内置了数据分析的功能(mapreduce),其他两者不支持。
8.应用场景
redis:数据量较小的更性能操作和运算上。
memcache:用于在动态系统中减少数据库负载,提升性能;做缓存,提高性能(适合读多写少,对于数据量比较大,可以采用sharding)。
MongoDB:主要解决海量数据的访问效率问题。
nosql数据库有哪些,以上就是本文为您收集整理的nosql数据库有哪些最新内容,希望能帮到您!更多相关内容欢迎关注。