Chinaunix

标题: NoSQL层出不穷,各种NOSQL产品的比较和优劣势讨论 [打印本页]

作者: lyhabc    时间: 2015-12-16 11:57
标题: NoSQL层出不穷,各种NOSQL产品的比较和优劣势讨论
获奖名单已公布:http://bbs.chinaunix.net/thread-4241394-1-1.html

话题背景

大数据技术在近几年发展十分迅速,在互联网公司以及传统公司都得到了广泛的应用。NoSQL一直伴随着大数据技术的发展而发展,当下最流行的NOSQL产品有mongodb和redis ,还有memcached。在运维当中,本人主要都是涉及mongodb的运维,memcached没有涉及到,可能是因为memcached比较简单,不需要运维部这边维护。最近看了一篇文章《淘宝开源Key/Value结构数据存储系统Tair技术剖析》,跟mongodb的复制集+分片集群是比较像的,原理基本相同。可以说,mongodb是非关系型数据库里最像数据库的,最起码从名字可以看出来Mongo + DB,那么问题来了,本期话题就NoSQL层出不穷,各种NOSQL产品的比较和优劣势进行讨论,欢迎大家畅所欲言。





讨论话题
(1)redis memcached 等和mongodb哪个更像DB?说明原因。
(2)大家一般把redis用在什么场景?mongodb用在什么场景?
(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
(5)学习mongodb和学习redis,mencached哪个更有优势?
活动要求:
(1)要言之有物,不能低于20个字。
(2)本次话题主要关注NoSQL相关的讨论,其他问题可能不做重点。



讨论时间
2015-12-16至2016-01-16



活动奖励
活动结束后将选取4名讨论精彩的童鞋,每人赠送一本《大数据存储 MongoDB实战指南》图书一本作为奖励。



奖品简介

作者: 郭远威   
出版社:人民邮电出版社
出版日期:2015 年2月
开本:16开
版次:1-1
友情提供:http://www.epubit.com.cn/book/details/1746


内容简介
MongoDB是一种面向文档的分布式数据库,可扩展,表结构自由,并且支持丰富的查询语句和数据类型。时至今日,MongoDB以其灵活的数据存储方式逐渐成为IT行业非常流行的一种非关系型数据库(NoSql)。
《大数据存储 MongoDB实战指南》从学习与实践者的视角出发,本着通俗精简、注重实践、突出精髓的原则,精准剖析了MongoDB的诸多概念和要点。全书共分4个部分,分别从基础知识、深入理解MongoDB、监控与管理MongoDB和应用实践几个维度详细地介绍了MongoDB的特点及应用实例。


试读样章
大数据存储:MongoDB实战指南.pdf (3.6 MB, 下载次数: 152)


对NoSQL感兴趣的朋友可以扫描下方的微信二维码,加入CU社区NoSQL交流群进行深入沟通探讨,欢迎您的加入。

作者: liklstar    时间: 2015-12-17 03:30
本帖最后由 liklstar 于 2015-12-17 03:44 编辑

看了这个帖子后真是百感交集。有看到并学习新事物的欣喜与渴望,有仅仅是在外国人的东西上摆弄摆弄的失望与消极,更有我们中国的工程师、研究生、科研人员、工程技术人员为什么总也不能创造出一个MongoDB、开发出一个redis而只能跟着外国人的屁股后面跑、干给外国人“擦屁股”的活的困惑、焦急、耻辱!

试问:我们的差距到底在哪里?我们的不足到底在哪里?是技术上的不足,还是市场需求上的落后?亦或是具有创造才能的人才的匮乏?我们就知道“学、学、学”,用人家的技术和产品“开发、开发、开发”,在人家的产品上“维护、维护、维护”,从来没有想过直接接触市场需求进而由我创造出一个技术、产品?或许,我们的知识积累已经够多了,现在需要的是创造?!

要创造,就得直接接触实际情况、需求;积极思考;不断试验,不断从失败中奋起;不断学习借鉴。如此持之以恒,日久弥新,不达目的绝不罢休。

其实,我们看过了外国人的代码和文档后觉得不过如此。那为什么我们就创造不出这样的文档和代码呢?
作者: lyhabc    时间: 2015-12-17 10:03
@liklstar
淘宝数据存储系统Tair是开源的
作者: stay_sun    时间: 2015-12-17 10:11
回复 1# lyhabc


    (1)redis memcached 等和mongodb哪个更像DB?说明原因。
这个 不都是db吗   ? 数据库只不过是个概念  其实就是方便存储数据的 软件而已  
楼主的意思  是哪个更像 rdbms  其实rdbms 好处就是sql  他们没有sql 支持  还是都差不多了
(2)大家一般把redis用在什么场景?mongodb用在什么场景?
redis  缓存  队列   内存数据库加速   存储 数据可以丢失一部分的数据
momgodb  数据分析  非结构话的数据
(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
内存数据库 还是速度 比较快  但是对于数据库的数据的一致性 还是有问题的
mongodb  对结构话的数据  还是非常快的
(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
其实回答楼主的问题    上面的东西真的 融合不到一起    cap 理论  三个特性   不可能同事拥有的
基本上 数据库 都是舍弃 一部分 c or a or p
相融合  要打破cap 理论   目前技术还是  不现实
(5)学习mongodb和学习redis,mencached哪个更有优势?

  我觉得 都需要学一下   使用的时候 深入学习吧   其实还是看你  用到哪里

作者: jieforest    时间: 2015-12-17 11:13
本帖最后由 jieforest 于 2015-12-19 16:53 编辑

占个坑先。。。

(1)redis memcached等和mongodb哪个更像DB?说明原因。
显然是MongoDB嘛。
Redis和Memcached都是键/值对存储的,这显然于关系数据库理论不符。
MongoDB可以看成是无模式的关系数据库。MongoDB的集合对应关系数据库的表,MongoDB的文档对应关系数据库的行数据,MongoDB的Key对应关系数据库的列。除此之外,
MongoDB还有索引、主键、数据类型等。
MongoDB还有类似于关系数据库的增删改查操作方式等。

(2)大家一般把redis用在什么场景?mongodb用在什么场景?
如果把Redis看成是内存缓存解决方案,那就太浅了,Redis的应用场景有很多。
1)可以做计数器方面的应用
2)可以做业务的TOP N的场景
3)可以做实时的统计分析
4)可用于构建消息队列
5)可作为分布式缓存解决方案
而MongoDB的应用场景就大不一样了,比如:
1)代替MySQL关系数据库的应用场景
2)实现高伸缩性的场景
3)对象存储或JSON存储的场景
4)大数据存储方案
5)数据缓存方案

(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
MongoDB目前已经非常流行了,本身就很有优势。而且它与Redis、Memcached不具备相比性,因为它们的大部分应用场景是不同的。
真要比较的话,MongoDB应该与CouchBase、RavenDB、OrientDB、Thrudb、SisoDb、RaptorDB相比,而这些NoSQL文档数据库目前是比不上MongoDB的,MongoDB完胜。

(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
不会融合。术业有专攻才是正途。
追求功能的大而全通常会失败。
还有利益、市场等诸多因素。
可以反问一句,Oracle数据库为什么没有和它的Timesten融合呢?又或者是Oracle为什么没有和MySQL融合呢?

(5)学习mongodb和学习redis,mencached哪个更有优势?
还是那句话,各有不同的用途,混为一谈是不妥的。
这三种数据库都很有实用价值,都可以用于生产环境,都值得掌握。

作者: demilich    时间: 2015-12-17 11:32
(1)redis memcached 等和mongodb哪个更像DB?说明原因。
- 类型不同而已,都是数据库
- 当然,memcached更像内存缓冲,redis是内存数据库,而mongodb则是非结构化数据库

(2)大家一般把redis用在什么场景?mongodb用在什么场景?
- redis用于缓存,适合小数据量而追求性能的场景,其支持的数据类型也很丰富
- mongodb用于非结构化海量数据存储非常方便

(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
- 谈不上哪个更有优势,各有侧重罢了
- redis适合数据量较小,但是更注重性能的一些场景
- memcached用于做缓存,减轻数据库负担等场景
- mongodb,则用于海量的非结构化数据存储等场景

(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
- 某些特性上也许会互相学习,但是融合可能性不大,因为三者的应用场景不同,所以在功能侧重点上就要有取舍。不会出现一个大而全可以放诸所有场景都是最佳的产品出现。

(5)学习mongodb和学习redis,mencached哪个更有优势?
- 首先是依赖于实际中是否会用到,用不到的话只需要了解一下就可以;其次,它们的侧重点不同,要说学习,都要学,呵呵
作者: cokeboL    时间: 2015-12-17 11:33
(1)redis memcached 等和mongodb哪个更像DB?说明原因。
        mongodb更像吧,redis次之。一是从宣传上,redis和memcached更偏向”内存型“,mongo虽然也是
        内存型(相关的坑也多),但是更偏重大数据相关,而且支持集群分片mapreduce,功能更全面强大
(2)大家一般把redis用在什么场景?mongodb用在什么场景?
        redis, 很多项目是用来做缓存或者小规模数据的业务或者做rpc数据共享之类
        mongodb更多是用在大数据相关,因为nosql,集群,都使mongodb扩展性优于关系型数据库及redis
(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
        主要是集群分片,mapreduce吧,大数据领域的,用redis和memcached就不好搞了,如果抛开大数据领域,个人觉得mongodb不如redis好用
(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
        会有融合,并且已经有了,甚至mongodb、redis、mysql等组合起来,mongodb处理非业务型的数据,redis做些速度要求快规模小或者rpc,mysql做事务相关的业务
(5)学习mongodb和学习redis,mencached哪个更有优势?
        技术多多益善,有时间就都学学,个人觉得mongodb和redis发展前景会更好,memcached因为出来的早,很多团队已经使用的旧项目可能因为业务和技术积累会继续使用,
        其他情况下,选择redis和mongodb的应该会居多
作者: lyhabc    时间: 2015-12-17 14:12
@cokeboL
大家的分析都很有道理  
作者: SeAL80s    时间: 2015-12-17 15:51
回复 2# liklstar


    说到底子上,都是教育惹的祸。中国教授给以色列教授的推荐信里写:我的学生都特别的听话,以色列教授回复:听话的学生大多没有创新意识。

    我身边的真实案例。

    这也不能完全怪老师,因为老师的老师也不一定教的好。上学的时候,遇到过上课"读书"的老师,有讲着讲着"我想想啊",也有严厉、幽默风趣的高数老师,也有想好好讲课,但是学生调皮捣蛋的...就是没有哪个老师说,我们学这么东西,以后哪能用上,所以就都没用心学。有学霸、有人才,不过那是个别。因为中国人多啊,美国2亿2000万,中国13亿7000万,就算美国10个人出一个人才,我们100人出一个人才,就因为人口多,所以顶尖人才上,差别估计不是太大...其他方面嘛,让社科院来回答吧...
作者: liklstar    时间: 2015-12-17 17:12
回复 4# lyhabc


   
什么意思?你是说Tair是阿里巴巴(淘宝是阿里巴巴旗下的吗?它跟阿里巴巴是什么关系?我不太知道?)的技术团队根据市场需要创造性地形成产品概念、探索出产品开发和运行的概念和原理、之后又独立地设计了产品并实现之,最后成功应用吗?

如果是这样的话,那就太好了?!
作者: liklstar    时间: 2015-12-17 17:31
回复 10# SeAL80s


   
其实,创新并不“难”?!并不一定需要丰富大量的知识和技能?!关键是具有一定知识和基础的人(学校、老师、学生、科研人员、工程师)要紧密联系实际、联系市场、根据市场和技术自身发展的需要通过研究、开发合适的产品来完成科研和学习。否则,科研和研发就是无源之水、无本之木了?!广泛、大量、全面地学习,对于学生来说,当然有好处。但是,不能为了学习而学习,或者至少是不能总是、长期是为了学习而学习。而要针对市场需要、科学技术自身发展的需要,以此为中心,展开研究和学习。只有这样才能真正把聪明才智转化为生产力,也才能赚钱、赚大钱,之后再大规模地投入科研和学习?!

我觉得我们最大的问题在于学校与市场严重脱钩、学生的学习与市场完全脱钩?!就比如:RISC的创始人Hennesy和Patterson就是从学校出来,带着研究成果办公司,又从公司回到学校搞科研。

作者: liklstar    时间: 2015-12-17 17:41
我就想问一问我们的工程师们:我们能不能下定决心,花一年、三年、五年的时间,不吃不喝,瞄准数据库或操作系统中的一个,搞一个出来?不管它一开始有多“丑”?
作者: laputa73    时间: 2015-12-17 21:19
国产的文档数据库有sequoiaDB啊,和mongodb兼容,但是性能好很多。
mongodb更像DB,是因为它不仅支持KV,还支持按文档的field索引。基本上可以等效于一个单表的mysql.
但是nosql数据库的通用短板,就是对join的支持不好。mongodb也不例外。这个是它的原理决定的。

redis我们也叫他内存数据库,同时还支持持久化。但是它的功能确实太有限了。基本就就限于二级的key+field索引。数据类型有限。
redis对应的国内改良品也有SSDB.可以支持主主集群,而且容量10倍。可惜性能也随之下降很多。

memcache就更只有KV了。

作者: lyhabc    时间: 2015-12-17 22:20
@laputa73
总结得不错  
作者: cjfeii    时间: 2015-12-18 10:00
占个楼先。
作者: will009    时间: 2015-12-18 11:12
本帖最后由 will009 于 2015-12-18 11:14 编辑

回复 13# liklstar

你提出来的观点令人深思,我觉得这牵涉到很多东西,比如教育、社会风气等等,研发操作系统和数据库还需要走一段很长的路。


   
作者: jieforest    时间: 2015-12-19 16:57
其实,我们看过了外国人的代码和文档后觉得不过如此。那为什么我们就创造不出这样的文档和代码呢?


真心不同意,你看了哪些项目的源码和文档?真正广为流行的开源项目,代码质量都非常高,文档未必详细,但是代码都很不错。像Redis之类的源码,里面蕴含了很多富有创新性的技术和思想。我感觉“不过如此”这句话有点自大。
作者: sjf0115    时间: 2015-12-21 13:18
回不了呢                     
作者: sjf0115    时间: 2015-12-21 13:19
1.redis memcached 等和mongodb哪个更像DB?说明原因。

关系型数据库已不能承受t级别,甚至pt级别的任务。nosql这时候就能起到作用。
nosql流行的原因是为了性能,不得不牺牲使用的复杂性。

2.大家一般把redis用在什么场景?mongodb用在什么场景?

(1)Redis
最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
例如:股票价格、数据分析、实时数据搜集、实时通讯。
(2)Mongodb
最佳应用场景:        适用于需要动态查询支持;
                                需要使用索引而不是 map/reduce功能;
                                需要对大数据库有性能要求;
                                需要使用 CouchDB但因为数据改变太频繁而占满内存的应用程序。
例如:你本打算采用 MySQL或 PostgreSQL,但因为它们本身自带的预定义栏让你望而却步。

3.mongodb和redis memcached等其他nosql产品相比哪个更有优势?

这是三个场景不同的产品,没有可比性,每一种非关系数据库都有它自己的适用场景,都有它自己的独特优势。
mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。
memcached和redis比较接近。它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。


4.大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。

本人觉得不会融合。它们被开发出来是各自针对特定的领域和场景进行设计的,它们各自都有自身的优势和缺点,不具可比性。
不会开发出一个功能齐全,可以适用于所有场景的一个产品,过分请求完美的产品必定是失败的产品,只要针对特定场景完美解决的就是成功的产品。
在项目应用中各个产品的组合使用是正确的选择,各个nosql产品组合使用,nosql也可以和传统数据库组合使用,发挥每个产品的最大价值。
同样,我们可以想象一下关系型数据库为什么没有出现一个融合的产品呢?

5.学习mongodb和学习redis,mencached哪个更有优势?

可以对这些都进行了解,但是还是要根据实际使用过程中的场景来决定选型。
mongodb为代表的nosql应该是传统数据库的有益的补充,较适合web端快速开发。
redis 和 memcache 都是好的缓存方案,各有各的优缺点著作权归作者所有。
redis 是分布式的数据结构服务器,功能上覆盖了memcached, 可以代替memcached.
当然memcached也有优势,memcached是多线程的,这样可以充分利用多核能力。redis是单核,要想在那么多数据结构基础上支持多线程,光加锁就会让人疯掉,性能也会下降。




作者: qintm    时间: 2015-12-29 10:06
本帖最后由 qintm 于 2015-12-29 10:38 编辑

回复 2# liklstar


不是技术问题,也不是经济基础问题

是文化或者说是思维层次问题

你看德国历史上出过那么多伟大的哲学家,但是德国历史上出过多少伟大的绘画大师呢?意大利出过很多的绘画大师,可意大利出过几个哲学大师呢?

为什么盛产哲学家的圈子很难盛产绘画大师?而盛产绘画大师的圈子则很少盛产哲学大师呢?

我想可能是绘画与哲学需要的是不同的思维方式,绘画大师可能需要很强的灵感和画面美感的捕捉能力,而哲学大师则需要超强的思维严谨和逻辑推理能力,德国文化的环境也许更容易培育出哲学家而不容易培育出需要灵感和美感的画家

形象思维和抽象思维在发展的过程中可能在人的学习时间上是一种竞争关系,你花了更多的时间在形象思维上则你的抽象思维就没有太多时间来发展了

汉字这种象形文字对我们的影响是潜移默化的,它在不知不觉中占据了我们思维发展的时间

我们的社会有几个有趣的现象,

比如:世界上最喜欢贴标语的国家,世界上神医最多的国家,世界上最不喜欢排队的国家

这几个例子形成的原因其实都是因为缺乏理性思维,看问题喜欢看表面,中国人更多的是用“心”来体悟世界,而不是用“脑”思考世界

什么原因造成的呢? 是因为中国人从小学习汉字,造成形象思维能力强,而抽象思维能力弱,而理性思维是需要做很多逻辑判断的,逻辑思维需要很高的抽象思维能力的

高度抽象的信息科学更需要很强的抽象思维,而中国文化的环境不利于培养这些,所以中国到今天做不出操作系统、编译器、数据库就不难理解了

我们仅仅是受限于传统文化的缺陷,中国的传统文化中是没有植根于逻辑思维的演绎推理的,全是植根于形象思维的的类比推理

我是很不赞同学校开授书法课的,书法与绘画本质上没有区别,这等于要求每个小孩子从小强迫学习绘画,那么这会挤压他的抽象思维能力的发展时间,非常不利于孩子理性思维能力的培养

我们应该根据天赋和兴趣来让孩子自己发展,而不是强迫一刀切,这种学校全体教授书法就是一种一刀切的行为

我们的社会就习惯干这种一刀切的事情,其结果就是整个社会往一个方向发展,结果就会走向极端,一个统一的高考制度不知道埋没了多少天才





   
作者: qintm    时间: 2015-12-29 10:57
本帖最后由 qintm 于 2015-12-29 11:00 编辑

回复 10# SeAL80s


如果仅仅是教育问题,那么我们为什么就改变不了教育方式呢?


今天的高考与1000多年前的科举有什么区别?今天的教育方式与2000年前又有什么区别?


为什么我们的文明发展了几千年还是在沿用那些旧的方法方式?问题真的仅仅是出在教育上吗?显然不是的


根据混沌理论,我们只需要做一点点的修改,就能产生巨大的差异,但这个修改必须要在非常非常高的源头上,教育不是这个源头


   
作者: SeAL80s    时间: 2015-12-29 16:05
回复 22# qintm


    关键还有一点,中国是以关系办事的,并不是你有才有能力就能在正确的位置上办事。所以,剩下的你就懂了吧
作者: heguangwu    时间: 2015-12-31 13:13
(1)redis memcached 等和mongodb哪个更像DB?说明原因。
        都不像DB,硬要说像那只有mongodb最像,redis和memcached都只能算是缓存系统,尽管他后面开发了持久化功能,但这个故障恢复起来慢的很,更别说ACID之类的,事务没有,schema简单,mongodb借鉴DB最多,设计之初就考虑了DB的各种问题,尽管有些没解决

(2)大家一般把redis用在什么场景?mongodb用在什么场景?
         redis做缓存比较多,就是放在数据库前面顶压力的,mongodb一般直接作为存储替代数据库的,适用于没有事务要求的且schema-free,和web展示可以直接集成的,比如评论系统之类

(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
        应用场景不一样,谈不上优势,不同的应用场景采用不同的nosql

(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
        融合的可能性不大,功能相似,但细节完全不同,适合的应用场景也不同

(5)学习mongodb和学习redis,mencached哪个更有优势?
        redis相对而言还是一个简单的系统,mongodb相比而言更复杂,简单系统可替代性高,也就是你学了这个也很容易招个人来替代你,而mongodb复杂的多,相比而言替代性不高,我觉得最好都学,重点放mongodb
作者: heguangwu    时间: 2015-12-31 13:14
(1)redis memcached 等和mongodb哪个更像DB?说明原因。
        都不像DB,硬要说像那只有mongodb最像,redis和memcached都只能算是缓存系统,尽管他后面开发了持久化功能,但这个故障恢复起来慢的很,更别说ACID之类的,事务没有,schema简单,mongodb借鉴DB最多,设计之初就考虑了DB的各种问题,尽管有些没解决

(2)大家一般把redis用在什么场景?mongodb用在什么场景?
         redis做缓存比较多,就是放在数据库前面顶压力的,mongodb一般直接作为存储替代数据库的,适用于没有事务要求的且schema-free,和web展示可以直接集成的,比如评论系统之类

(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
        应用场景不一样,谈不上优势,不同的应用场景采用不同的nosql

(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
        融合的可能性不大,功能相似,但细节完全不同,适合的应用场景也不同

(5)学习mongodb和学习redis,mencached哪个更有优势?
        redis相对而言还是一个简单的系统,mongodb相比而言更复杂,简单系统可替代性高,也就是你学了这个也很容易招个人来替代你,而mongodb复杂的多,相比而言替代性不高,我觉得最好都学,重点放mongodb
作者: heguangwu    时间: 2015-12-31 13:22
不能什么都怪教育啊:wink:
再说中国人搞出来的开源的东西也很多啊,参与国际上知名开源软件的也有很多committer是中国人,完全是国人开发的开源软件也很多,只是国际化流行度不高,原因是多方面的,最主要是语言文化方面的差异导致圈子不一样(不要以为老外就没有圈子),你如果不在那个圈子里面人家就不care你,不信任你,从而导致流行度不广
回复 10# SeAL80s


   
作者: lyhabc    时间: 2015-12-31 15:04
@heguangwu
LVS国人开发的
作者: will009    时间: 2016-01-07 16:57
回复 21# qintm
分析得很独到啊,学习了
作者: wenhq    时间: 2016-01-11 23:24
(1)redis memcached 等和mongodb哪个更像DB?说明原因。
3个都是database,应该是说那个像RDBMS?  那么就是mongo了,因为它支持ACID操作。感觉很像RDBMS.
(2)大家一般把redis用在什么场景?mongodb用在什么场景?
redis多数用在cache场景,也有时候做存储,比如存用户的一些profile信息。mongodb主要用于存储数据(非结构化)
(3)mongodb和redis memcached等其他nosql产品相比哪个更有优势?
各自的特点不同,适应的场景不同吧,
mongo有replicset 和 sharding这个在支持大规模的数据存储中有很大的优势。可以读写分离,也可以支持横向扩展。
redis虽然有横向扩展的能力,但其因只能使用一个cpu,对多核是一种浪费。只aof或者snapshot对redis进程的影响不可小时,还有master/slave模式中,需要配置slave演示同步来减少master进程意外crash带来的灾难性后果。redis支持的数据类型比较多。redis的读写分离虽然可以做,但在高并发情况下master/slave的同步延时令人无法忍受。
memcache的缺点是无法持久话,进程重启后,所有数据消失,还有memcache支持的数据类型比较单一,但其内部数据管理的机制比较不错,粒度比较细。
(4)大家觉得mongodb和redis ,mencached 等其他nosql产品会融合吗?因为大家都是nosql方面的产品,功能相似,应用场景都差不多。如果不会融合,说说为何不会融合的理由。
mongodb一般和hbase,cassandra来比较,memcache跟redis来比较。但mongo支持高并发的能力相比hbase,cassandra要弱不少,随意在高并发要求高的场景中多🐭用到hbase。而弃用mongo。
(5)学习mongodb和学习redis,mencached哪个更有优势?
怎么说能,mongodb算是nosql里相对稳定的一种数据库产品,有广泛的人在使用,也有企业版的支持。这个对于多数人来说选择的首要考虑因素吧。

作者: lyhabc    时间: 2016-01-12 00:05
mongo不支持ACID操作中的CI
memcache的缺点是无法持久话,进程重启后,所有数据消失,既然是cache当然不会持久化啦

mongo支持高并发的能力相比hbase,cassandra要弱不少,有证据吗?

作者: mike79    时间: 2016-02-05 10:12
回复 13# liklstar
搞出来没人用有什么用。
这又不是造原子弹,爆炸了就成功了。这个东西造出来是要给人用,要有人用才行的。


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2