聊天记录保存到数据库问题

yunwalker

小白向各位大佬请教各问题,假如一个项目有1万并发量,直接用mysql数据库的话,数据库能承受住吗?
 
如果用文件或者redis来保存聊天记录,每隔一定时间存一次数据库,这种方式可行吗?
 
用文件存储还是用redis存储效率高呢?

9540 5 0
5个回答

yongdao35

1万并发属于淘宝级别的并发了。需要一个优秀的架构团队,开发出适合自己业务场景的分布式存储。
并不是一个mysql 一个 redis就能解决的。

  • yunwalker 2019-06-26

    大佬,假如有1万用户在线,其中有1000用户在相互聊天,这种情况该怎么处理呢

  • dingfei 2019-06-27

    @6002:可以看我的帖子,单机每秒1000万没问题

边玩边玩

这1000用户是群聊还是,相互之间私聊?

taozywu

@https://wenda.workerman.net/people/yunwalker 

1w在线, 1k在相互私聊。

可以建立一个redis集群,进行实时存储。 当然中间加上队列集群来也是可以。
至于数据最后存在mysql中, 可以挑一个空闲时间在处理。

--
以上个人思路!

抽不完的寂寞

同时1万在线基本不会有1000并发。100就不错了,直接存mysql没有任何问题。

  • yunwalker 2019-06-27

    目前就是直接存mysql,主要是为后续考虑,数据量大的话应该怎么处理

抽不完的寂寞

数据量大的话第一考虑的是mysql主从,主库只写,多个从库读。
mysql每秒写个几千条数据是没问题的,写数据按月写一个表或者7天一个表,或者根据uid取模等规则分多个表去写。基本上可以抗上千并发了。
如果是聊天类的,基本上mysql写请求不大的。因为消息多了就刷屏了,反而没法聊了。

年代过于久远,无法发表回答
🔝