服务器怎么实现即时保存数据

1.应用场景:client与server创建socket通信,client 通过socket向Server 发送数据。
2.连接数量:会有很多个(至少几十万级)client与server 通过socket建立连接,上传数据。
3.数据存储:现在使用的数据存储是redis+mysql
4.我的问题:该如何实现将server收到的数据及时的保存到MySql数据库中? 现在的思路: 用reids建一个队列,然后再保存到mysql,不知道是否可行? 看到有人说通过mongdb,那我该如何整合mongb到现有的redis+mysql中呢?

阅读 4.6k
4 个回答

几十万的连接,挺大的,但是是否有1s有几十万的写入。如果有那就用异步写入。但是不要用redis中的list,因为你的后端进程挂掉的话,数据就没了,建议用rabbitMQ做消息队列

redis list有坑的,我们现在的模式和你说的模式差不多,如果消费redis list的进程程序挂了,那么就悲催了,一般都会丢失数据的.

你说的是memtor

这种情况使用redis list也行,可以在入redis之前记录个log,这样毕竟会安心点。
其他方式就可以考虑专业的消息队列了,如xxMQ,或者有能力的话可以考虑Kfaka。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题