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

高并发,写入频繁的评论系统(mongo)有必要加缓存(redis)么?该如何加?

  •  1
     
  •   582033 · 2014-07-24 14:32:58 +08:00 · 17113 次点击
    这是一个创建于 3773 天前的主题,其中的信息可能已经有所发展或是发生改变。
    系统情况是这样的:

    数据库使用mongo, 如果并发高,可能会到几万或者更高,这种情况下有必要再用redis来缓存评论么?

    本来准备使用redis的列表来缓存前500条数据,有新增或者删除的时候直接用lrem/lpush来调;

    但后来想到评论还可能按照时间或者用户来排序,缓存的话感觉就需要按照不同的条件来缓存,
    一旦有修改就需要把不同条件的缓存列表都更新,感觉有点太复杂了。

    求助。
    12 条回复    2014-09-03 09:40:32 +08:00
    dreampuf
        1
    dreampuf  
       2014-07-24 14:49:32 +08:00
    如果怀疑“有没有必要”,那就没有必要。不确定的优化在出现问题之后再做。
    并发不会达到几万,如果达到请打脸时透露下你们的架构和业务。
    使用redis一般是任务队列缓存,从你的使用方式来看也是。这种情况下从插入到显示肯定会有延迟,可以从产品端解决(本地脚本静态插入,或者读取列面时和请求队列里的任务针对当前用户是作者的情况做简单合并,目的都是为了让作者察觉不到)。
    列表缓存需要产品优化,归根到底得考虑缓存的模型,一般而言量少更新频繁,从这连点下手,要求产品做出妥协。一切为了速度。
    582033
        2
    582033  
    OP
       2014-07-24 15:06:20 +08:00
    @dreampuf 之前比较火的一款游戏,现在是为游戏做游戏社区项目,一般游戏搞活动的时候人不少,但的确应该到不了几万并发(自抽一下).但还是会很接近5位数的.
    erylee
        3
    erylee  
       2014-07-24 15:17:58 +08:00
    别谈是否redis缓存,先看看DBA圈对mongodb的评价。我们用过几个月,最后结论mongodb就是一坨屎,从理论、架构到实现都他妈很荒谬。几万写入redis+关系数据库一点问题没有。
    TangMonk
        4
    TangMonk  
       2014-07-24 16:06:49 +08:00
    @erylee 能给几个DBA圈对mongodb的评价贴出来看下,具体遇到了什么不可解决的问题?
    582033
        5
    582033  
    OP
       2014-07-24 17:10:42 +08:00
    @erylee 暂时没遇到mongo方面的问题,运行良好,而且在高并发情况下的写入成功率上要高,当时测试1W并发,mysql innodb写入失败率在3%,mongo只有0.1%
    zorceta
        6
    zorceta  
       2014-07-24 17:14:59 +08:00 via Android
    @erylee 求长篇大论分析,洗耳恭听
    ss098
        7
    ss098  
       2014-07-24 17:56:05 +08:00 via Android
    @erylee 求真相,好奇心产生了
    tczzjin
        8
    tczzjin  
       2014-07-24 18:19:21 +08:00
    @erylee 求评价的真相....
    Sunyanzi
        9
    Sunyanzi  
       2014-07-25 13:09:32 +08:00
    @mongodb 你现在感觉如何了 ..? 感觉如何了恩 ..?
    erylee
        10
    erylee  
       2014-08-01 17:11:14 +08:00
    晕了,v2ex的消息提醒是不是有问题,才看到各位回复。我们之前网络采集3、4十万的设备数据,写入然后简单mapreduce处理,没有做集群mongo各种超时。后来自己写了一个简单的errdb(https://github.com/erylee/errdb)替换掉了。

    @TangMonk DBA圈抵制mongodb的太多了,你可以看看豆瓣洪强宁、简悦云风之前微博讨论mongo的。

    mongodb当然写的快,因为就傻逼似的向内存灌数据,不管有没写入到磁盘,而且锁力度很大。mongodb从理论到实现,在有经验的DBA眼里是荒谬的。感觉mongo就是NoSQL浪潮中炒作起来的愚蠢产品,可以称为NoSQL领域的小米。
    jprovim
        11
    jprovim  
       2014-09-02 22:33:07 +08:00
    @erylee,

    擺點事實, 請看看這個company list.

    http://www.mongodb.org/about/production-deployments/
    erylee
        12
    erylee  
       2014-09-03 09:40:32 +08:00
    @jprovim 嗯,当初就是看这些广告用的...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3154 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:39 · PVG 08:39 · LAX 16:39 · JFK 19:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.