mongodb 和 redis 的疑惑,我感觉 mongodb 岂不是可以代替 redis 了? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
51300520
V2EX    MongoDB

mongodb 和 redis 的疑惑,我感觉 mongodb 岂不是可以代替 redis 了?

  •  4
     
  •   51300520 2018-12-18 04:21:27 +08:00 12998 次点击
    这是一个创建于 2496 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mongodb 早就是优先把数据放入内存,内存装不下了才存磁盘做冷热数据处理。那我是不是可以把 mongodb 看做一个比 redis 更智能的内存数据库?它还知道内存不够了自己做冷热数据分开存储处理。

    有文章说到 mongodb 数据量大了超过内存的时候要从磁盘读,速度慢。可是数据量大了超过内存这个情况 redis 更没法用了啊,要保证数据完全在内存中那就只能做群集分担,要么就是 redis 根据设定规则淘汰一些键。而 mongodb 也可以方便的做群集。

    进一步我产生了 mongodb 是不是可以代替 redis 的想法?用 mongodb 我可以不那么担心内存,就算数据量超过内存大小了他至少会自动处理,虽然性能变差了至少还能用,给我优化系统留一个缓冲时间。而用 redis 我要时时刻刻担心并监控内存使用情况,生怕一不留神内存爆了。

    我没怎么用过 mongodb,想了解一下去网上找的文档阅读,以上是我阅读后的思考结果。有熟悉这 2 种数据的朋友帮忙解答一下疑惑吗?

    28 条回复    2018-12-19 12:08:46 +08:00
    arYUWang
        1
    arYUWang  
       2018-12-18 04:31:56 +08:00
    我也很感兴趣,想看看有没有人回复这个贴。是不是可以在这里留个言就好?还是说出了水一发还有别的办法可以收到评论的通知?
    binux
        2
    binux  
       2018-12-18 04:37:23 +08:00 via Android   1
    Google mongodb redis benchmark
    wspsxing
        3
    wspsxing  
       2018-12-18 04:50:44 +08:00 via Android
    性能差距,也许你需要 360 的 pika
    yuikns
        4
    yuikns  
       2018-12-18 05:40:14 +08:00
    mongo 和 redis 的单次查询时间相差至少一个数量级....
    yuikns
        5
    yuikns  
       2018-12-18 05:42:01 +08:00
    要是想要一个大容量用硬盘的 redis,那么 ssdb 了解一下。
    stabc
        6
    stabc  
       2018-12-18 06:19:45 +08:00   2
    主要还是性能差距导致用途不同吧。mongodb 更偏向保存数据,而 redis 更偏向保持状态。比如 facebook 用 redis 来记录用户是否已经读了某个帖子以及停留状况,当用户下拉页面时就把访问情况记录到 redis 里。
    fundebug
        7
    fundebug  
       2018-12-18 08:46:43 +08:00
    查询 mongodb 肯定比查询 redis 慢,那么缓存还得用 redis。另外 mongodb 非常消耗内存,用它当缓存用不划算。
    myhot21
        8
    myhot21  
       2018-12-18 08:58:20 +08:00 via Android
    你这是只考虑业务实现了,可以自己测试下,性能差别很大的。如果只考虑业务,mysql 也是同样能代替 redis。
    leriou
        9
    leriou  
       2018-12-18 09:07:53 +08:00
    从功能上说是可以的, 不过场景不同, 只是某些地方有重合, Redis 性能更强, 耦合更低, 对数据针对性更强
    lideshun123
        10
    lideshun123  
       2018-12-18 09:20:10 +08:00
    芒果对标的应该是 mysql 和 redis 做对比应用场景不同,
    zhangweifang
        11
    zhangweifang  
       2018-12-18 09:20:21 +08:00
    类比下 CPU 内的缓存和内存的差别即可,Redis 和 MongoDB 的目的还是差别挺大的。
    aaa5838769
        12
    aaa5838769  
       2018-12-18 09:20:58 +08:00
    个人感觉 mongodb 更适合保存冷数据,redis 适合保存热数据。
    eliteYang
        13
    eliteYang  
       2018-12-18 09:40:44 +08:00
    pika 了解一些,基于 rocksdb 实现的兼容 redis 协议的大容量 nosql,目前我们项目用在生产环境中
    xiaomimei
        14
    xiaomimei  
       2018-12-18 09:45:16 +08:00 via Android
    插眼
    hotea
        15
    hotea  
       2018-12-18 09:48:02 +08:00
    战略性 mark
    xiaogui
        16
    xiaogui  
       2018-12-18 09:59:52 +08:00
    mongodb -> 数据库
    redis -> 缓存
    whitesnoopy
        17
    whitesnoopy  
       2018-12-18 10:11:20 +08:00
    redis 适合 TPS 比较高的场景(例如点赞功能),mongodb 适合海量数据场景(例如评论功能)
    BOYPT
        18
    BOYPT  
       2018-12-18 10:13:57 +08:00
    在需求没达到一定量级时候,很多东西可以相互替换。
    ilaipi
        19
    ilaipi  
       2018-12-18 10:15:35 +08:00 via iPhone
    我们公司目前的主力数据库就是 mongodb ……
    sunnyadamm
        20
    sunnyadamm  
       2018-12-18 10:20:58 +08:00
    一个是数据存储,一个是数据状态存储,两个库性能上差距也是很大的,各有优点,要参考实际情况选择使用
    NoBugDie
        21
    NoBugDie  
       2018-12-18 10:32:21 +08:00 via Android
    mark 一下
    Light3
        22
    Light3  
       2018-12-18 10:34:03 +08:00
    缓存 和数据库 都分不清吗..
    fcten
        23
    fcten  
       2018-12-18 11:15:32 +08:00
    对于楼主来说,可能是的。因为个人项目 /中小型项目往往没有足够的收益,节省的人力成本是最主要的。

    对于成熟的工程来说,不是。因为 redis 带来的性能提升所节省的成本要远远多于多付出的那点人力成本。更何况成熟的项目不能容忍性能波动,不可能出现内存不够硬盘来凑的情况。

    如果微信动不动一条消息延迟一个小时才能收到,谁还会用它?
    nekoyaki
        24
    nekoyaki  
       2018-12-18 11:23:02 +08:00
    类似 ATP 和葡萄糖的关系吧,redis 用全内存设计,牺牲内存为代价换来了巨大的速度提升。
    实际更多的情况这些东西是互补的而不是互斥的。
    另外 redis 也不一定都是用来做“缓存”,很多用法里,redis 是拿来存储真正的业务数据,需要持久化的。适用场景就是比如列表啊,关系关联啊,键值映射之类的,体积小,但是需要快速查询的那种。
    xkeyideal
        25
    xkeyideal  
       2018-12-18 11:28:37 +08:00   1
    特快列车与高铁的区别
    Tyrone
        26
    Tyrone  
       2018-12-18 11:29:46 +08:00
    mark
    Wanex
        27
    Wanex  
       2018-12-18 11:40:33 +08:00
    先马
    jifengg
        28
    jifengg  
       2018-12-19 12:08:46 +08:00
    我们有些项目里,这俩都用了,redis 用做缓存,mongodb 做持久化。分工明确。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1382 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:04 PVG 01:04 LAX 10:04 JFK 13:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86