Redis、mongoDB、memcache比较

Redis、mongoDB、memcache比较

1、memcache 数据结构单一。(key-value)
2、redis 丰富一些,数据操作方面,redis 更好一些,较少的网络 IO 次数,同时还提供 list,set,hash 等 数据结构的存储;
3、mongoDB支持丰富的数据表达,索引,最类似 关系型数据库,支持的查询语言非常丰富。效率比前两者稍弱
4、 mongoDB 支持 master-slave,replicaset(内部采用 paxos 选举算法,自动故障恢复),auto sharding 机制,对客户端屏蔽了故障转移和切分机制;
5、 mongoDB 适合大数据量的存储,依赖 操作系统 VM 做 内存管理;
6、 MongoDB 从 1.8 版本开始采用 binlog 方式支持持久化的可靠性;
7、Memcache 在并发场景下,用 cas 保证一致性redis 事务支持比较弱,只能保证事务中的每个操作连续执行;
8、mongoDB 不支持事务;
9、 mongoDB 内置了 数据分析的功能 (mapreduce),其他不支持;

应用场景分析
1、redis:数据量较小的更性能操作和运算上
2、memcache:用于在动态系统中减少数据库负载,提升性能;做缓存,提高性能(适合读多写
少,对于数据量比较大,可以采用 sharding)
3、MongoDB:主要解决 海量数据 的访问效率 问题。------运营商通话详情json数据

mongoDB介绍
1、MongoDB 是一个基于分布式文件存储的数据库。
2、 MongoDB 是一个介于关系数据库和非关系数据库之间的产品, 是非关系数据库当中功能最丰富, 最像关系数据库 的。

NoSql
1、降低关系性数据库压力;
2、 NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,
     相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入;
3、 指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称;
4、NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展;
5、 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案;
6、 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象 。字段值可以包含其他文档,数组及文档数组;
http://www.runoob.com/mongodb/mongodb-intro.html

主要特点

MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
        MongoDB安装简单。


















你可能感兴趣的:(Java后台开发)