V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
miracleyao
V2EX  ›  问与答

关于 MongoDB 和 Redis 的应用场景?

  •  
  •   miracleyao · 2016-04-06 14:12:53 +08:00 · 4996 次点击
    这是一个创建于 3157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在学 MongoDB 和 Redis ,我是做 Java 后台的,很好奇这两个 NoSQL 的应用场景有哪些?我能想到的一个场景就是当一个 Web 站点数据量很大时,关系数据库会遇到瓶颈,这些 NoSQL 会派上用场,比如 MongoDB,当然 Redis 可能主要是做缓存方面的,但是在一个项目中直接不使用关系数据库吗?还是会搭配着使用,希望有相关了解的人指导下。

    4 条回复    2016-04-06 17:23:14 +08:00
    dapang1221
        1
    dapang1221  
       2016-04-06 14:30:09 +08:00 via Android
    我觉得当关系型数据库用起来明显感觉到痛苦时就要上 nosql 了,还有就是业务逻辑解耦。。一个简单的栗子就是你要存大量的键值对,用 MySQL 的话效率感人,就要把这块东西分离出来,用 redis 来实现。不用关系型数据库当然可以,得看具体是什么项目而已。。个人理解。
    shirokuma
        2
    shirokuma  
       2016-04-06 15:51:18 +08:00
    1.mongodb 的 schema-free 使用起来比 mysql 自由些.但因为没有事务需要应用自己实现
    mongodb 支持副本集(replica)和分片(shard),Replica 可以将读压力分散到各个集群中,出了问题自动 failover,而 shard 可以将 IO,内存,CPU 等压力分散开来,适合用来存储单台机器无法存储的数据量.

    2.redis 比较灵活些,但个人更偏爱使用 redis 作为缓存以及处理各种排行榜,排序来使用
    shirokuma
        3
    shirokuma  
       2016-04-06 16:12:45 +08:00
    补充一下:可以考虑两者采用混合使用.按经验来说,sql 和 nosql 是互补关系.
    关联查询,统计,事务需要用到 sql 会轻松不少.
    如果有比较多的 key-value 数据或者"灵活多变的"数据而且还蛮多的,就用 nosql 吧
    xuwenmang
        4
    xuwenmang  
       2016-04-06 17:23:14 +08:00
    不喜欢关系数据库。

    存的时候:把数据拆开,存;
    取得时候:取;再把数据合并。

    图啥啊。破 B 网站,直接用 txt 存。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:42 · PVG 00:42 · LAX 08:42 · JFK 11:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.