请支招: 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,还是继续增加中。。。内存就。。。。

有什么好办法。。。

8821 次点击
所在节点    Redis
61 条回复
whatisnew
2015-05-06 09:11:00 +08:00
@lincanbin 现在是30天,打算改到10天
xiaozi
2015-05-06 09:12:04 +08:00
@whatisnew redis的配置文件中 hash-max-ziplist-entries,会对 hash 存储进行优化;你把 key 的 id 拆分成两个数字,一个 hash 里面大概存 1000 个好了,每个子 id 也是对应一个字符串;如果觉得子 id 也长了,可以对子 id 进行 base62 转换。
whatisnew
2015-05-06 09:14:47 +08:00
@xiaozi 把 key 的 id 拆分成两个数字.... 这一段没看懂,哪个 key 哪个 id?一个 hash 里边可以存超过 6 位数的 field 吗。。。
cdffh
2015-05-06 09:17:12 +08:00
十万条数据不断多哦 是读写太频繁了吗
huitailang
2015-05-06 09:18:38 +08:00
围观~
whatisnew
2015-05-06 09:19:06 +08:00
@cdffh 这只是评论数据。。。还有很多其他数据
cdffh
2015-05-06 09:21:25 +08:00
额 现在大概的数据规模是多大啊。 并发多少啊。这些情况要说清楚啊。不然不好找优化点啊
gowithwind
2015-05-06 09:24:31 +08:00
我看楼主也是不愿花钱,这样的话考虑用ssdb吧.和redis基本类似,底层是leveldb,大量数据存在硬盘里,性能也可以.
xiaozi
2015-05-06 09:26:51 +08:00
@whatisnew

比如你是这样的:

item_comment:6543001
item_comment:6543002
item_comment:6544010

然后存成这样的:

hset item_comment:6543 001 '这是json str'
hset item_comment:6543 002 '这是json str'

hset item_comment:6544 002 '这是json str'

不是存成一个大hash,是好多个hash
nevernet
2015-05-06 09:29:05 +08:00
@gowithwind ssdb现在稳定了吗?
czheo
2015-05-06 09:29:19 +08:00
mysql主从设了么?读写分离啊。
whatisnew
2015-05-06 09:35:48 +08:00
@czheo 主从,读读读写分离,主从从从 这都是标配了。。。
whatisnew
2015-05-06 09:36:39 +08:00
@nevernet 我看了 ssdb 的文档,看了半天也没看出来他是存在内存还是ssd
lincanbin
2015-05-06 09:40:53 +08:00
@whatisnew 需要缓存的只是热数据,你设置1天都够多了。
czheo
2015-05-06 09:47:54 +08:00
mysql query cache开了么?
whatisnew
2015-05-06 09:48:48 +08:00
@lincanbin 那不是跟 cnbeta 一样了。。。很多人喜欢评论的
whatisnew
2015-05-06 09:51:07 +08:00
@czheo 这个。。。 cache 是在应用层做的,不是在 mysql
youxiachai
2015-05-06 09:54:26 +08:00
ssdb ? 接口跟redis 直接兼容..
czheo
2015-05-06 09:55:29 +08:00
redis里面放最近1000的comment, 翻页到1000以后开始从mysql读数据。
whatisnew
2015-05-06 09:56:05 +08:00
@youxiachai 我是说他是存内存的还是存ssd的。。。还是都可以。。。

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

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

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

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

© 2021 V2EX