请支招: redis || mysql 评论,赞,星标,这些互动数据

2015-05-06 08:38:34 +08:00
 whatisnew

最近遇上评论数据的瓶颈了,放 mysql 吧受不了这么大的请求量,放 redis 吧,内存受不了。

mysql 请求太多,继续用的话只能再堆服务器了

redis 吧,数据太多了,比如:评论数据item_comment:item_id 去存取数据的话,那么现在的 item 已经到6位数了。。。那么也就是说 redis 里有 item_comment:654321(n) 仅仅评论数据就有 6 位数的 key 了,那么加上所有的互动就有 5*654,321 位数的 key,还是继续增加中。。。内存就。。。。

有什么好办法。。。

8579 次点击
所在节点    Redis
61 条回复
zhangwei
2015-05-06 08:45:32 +08:00
又想马儿跑得快,又想马儿不吃草
whatisnew
2015-05-06 08:46:13 +08:00
以前老骂cnbeta只在24小时内显示评论数据,现在终于充分理解了。。。
whatisnew
2015-05-06 08:47:35 +08:00
@zhangwei 问题是老这和堆服务器,除了堆服务器,算法上有没有可能做一些优化呢。

我们现在考虑用 ssd 纯文本存储评论数据。。。
freshlhy
2015-05-06 08:48:37 +08:00
围观
zhangwei
2015-05-06 08:48:53 +08:00
@whatisnew 内存价格其实还可以
lzxgh621
2015-05-06 08:54:36 +08:00
@whatisnew 然后,我就在没去过cnbeta,没评论没意义。
whatisnew
2015-05-06 08:55:23 +08:00
@lzxgh621 哈哈哈,我现在是只看个标题
rqrq
2015-05-06 08:56:23 +08:00
业务需求是什么?以至于十万级的评论数据让mysql承受不了了。
gowithwind
2015-05-06 08:57:37 +08:00
舍不得内存,就用缓存呗.针对热数据缓存.
whatisnew
2015-05-06 08:58:41 +08:00
@rqrq 。。。数据容量不是问题,问题在连接数和IO
whatisnew
2015-05-06 08:59:10 +08:00
@gowithwind 热数据缓存不还得用到 redis 么。。。
Livid
2015-05-06 09:00:21 +08:00
数据库大到一定程度就必须要拆。

拆到不同的表甚至不同的服务器上。
nowcoder
2015-05-06 09:01:10 +08:00
牛客网的评论放在mysql,赞放在redis
simonlei
2015-05-06 09:01:44 +08:00
冷热数据分离。热数据在内存,冷数据在硬盘。
wy315700
2015-05-06 09:03:10 +08:00
mysql试试看innodb呗

不行就上hbase吧
xiaozi
2015-05-06 09:05:08 +08:00
用hash优化

item_comment:6543
21(n)
22(n)

设置过期时间,自动清理冷数据
kier
2015-05-06 09:07:31 +08:00
说说看并发量是多大?
whatisnew
2015-05-06 09:08:16 +08:00
设置过期时间是个好主意!
但是 hash 优化的话。。。不在一个点上哦,一个 item_comment 对应的是一个 json 字符串,不是按多少楼分的。。。是依 item 为单位的。
lincanbin
2015-05-06 09:09:37 +08:00
评论的缓存过期时间是多久?
whatisnew
2015-05-06 09:10:06 +08:00
然后, item_comment 里对应的那些用户 user_id 读取 avatar nickname 这些字段怎么办。。。存成死数据吗?

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

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

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

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

© 2021 V2EX