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

2014-07-24 14:32:58 +08:00
 582033
系统情况是这样的:

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

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

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

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

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

http://www.mongodb.org/about/production-deployments/
erylee
2014-09-03 09:40:32 +08:00
@jprovim 嗯,当初就是看这些广告用的...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124280

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX